[英].NET prevent loading usercontrol data on default.aspx
I have default.aspx page and have a four user controls which contains gridview. 我有default.aspx页面,并有四个包含gridview的用户控件。 I show this user controls with modalpopupextender (ajaxtoolkit), when users click on some button on default.aspx.
当用户单击default.aspx上的某些按钮时,我将使用modalpopupextender(ajaxtoolkit)显示此用户控件。 Problem is, that all usercontrols data (actually table rows) are loaded when page is started so my page response very slow, because this gridviews contains a lot of data.
问题是,启动页面时会加载所有用户控件数据(实际上是表行),因此我的页面响应非常慢,因为此gridviews包含很多数据。
So when I run my page, click ctrl+U to get source code, there is loaded whole data from usercontrols. 因此,当我运行我的页面时,单击ctrl + U以获得源代码,就会从usercontrols中加载整个数据。
My code: 我的代码:
default.aspx Default.aspx的
<%@ Register Src="houseUC.ascx" TagName="house1" TagPrefix="uc1" %>
..
<uc1:house1 ID="house" runat="server" />
houseUC.ascx houseUC.ascx
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:Button ID="buttonHouse" runat="server" Text='Show all' /> //Button which appears in default.aspx where I pute <uc1:house1..>.
<cc1:ModalPopupExtender runat="server" ID="modalHouse" TargetControlID="buttonHouse"
PopupControlID="panelHouse" CancelControlID="closeHouse">
</cc1:ModalPopupExtender>
<asp:HiddenField runat="server" ID="hfModalVisible" />
<asp:Panel runat="server" ID="panelHouse">
<asp:UpdatePanel ID="UpdatePanelZaposleni" runat="server" UpdateMode="Conditional">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
...
</asp:UpdatePanel>
button for close..
</asp:Panel/>
houseUC.ascx.cs houseUC.ascx.cs
protected void Page_Load(object sender, EventArgs e)
{
//get data from sql query..
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet datas = new DataSet();
sda.Fill(datas);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind(); //GRIDVIEW CONTAINS 300+rows
con.Close();
}
So how can I manage to do that usercontrol loads when I click on button "Show All" and not before (with default.aspx)? 因此,当我单击“全部显示”按钮而不是之前(使用default.aspx)时,如何管理用户控件?
Move your code from the page load event into the show all button click event. 将代码从页面加载事件移至“显示所有按钮”单击事件。 Then create a hidden dummy Target controlID.
然后创建一个隐藏的虚拟Target controlID。 Call the show method of the popup after loading the grid view.
加载网格视图后,调用弹出窗口的show方法。
<asp:HiddenField ID="HiddenDummy" runat="server" />
<cc1:ModalPopupExtender runat="server" ID="modalHouse" TargetControlID="HiddenDummy"
PopupControlID="panelHouse" CancelControlID="closeHouse">
protected void ShowAllButton_Click(object sender, EventArgs e)
{
//get data from sql query..
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet datas = new DataSet();
sda.Fill(datas);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind(); //GRIDVIEW CONTAINS 300+rows
con.Close();
modalHouse.show();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.