[英]In gridview, updatepanel is not working
HTML代碼
<asp:GridView ID="gridprodlist" runat="server" AutoGenerateColumns="False" EmptyDataText="No record" Width="100%">
<Columns>
<asp:TemplateField HeaderText="Edit<br/>Delete<br/>Disable">
<ItemTemplate>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top">
<asp:UpdatePanel ID="UpdatePanel100" runat="server">
<ContentTemplate>
<asp:CheckBox ID="chkdis" runat="server" AutoPostBack="True" OnCheckedChanged="chkdis_CheckedChanged" ValidationGroup='<%# Eval("pid") %>' Text="Disable" />
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
.cs代碼
protected void chkdis_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkdis = (CheckBox)sender;
int id = Convert.ToInt32(((CheckBox)sender).ValidationGroup);
if (chkdis.Checked == true)
{
}
else
{
}
}
我已經將updatepanel放在gridview中但仍然點擊我的復選框我的頁面得到刷新。 我該怎么辦? 我不希望我的頁面得到刷新
嘗試將UpdatePanel移出GridView,並將整個GridView包裝在UpdatePanel中,看看是否有所不同。
嘗試將此CheckBox
注冊為代碼隱藏的async-postback控件:
protected void Page_Init(Object sender, EventArgs e)
{
gridprodlist.DataBound += GridprodList_DataBound;
}
private void GridprodList_DataBound(Object sender, EventArgs e)
{
ScriptManager sm = ScriptManager.GetCurrent(Page);
foreach(GridViewRow row in gridprodlist.Rows)
{
CheckBox chkdis = (CheckBox) row.FindControl("chkdis");
sm.RegisterAsyncPostBackControl(chkdis);
}
}
它只是第一次工作,但第二次我的頁面再次刷新
然后嘗試使用RowCreated
,它在每一行的每個回發中觸發:
ScriptManager sm = ScriptManager.GetCurrent(Page);
private void GridprodList_RowCreated(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox chkdis = (CheckBox) e.Row.FindControl("chkdis");
sm.RegisterAsyncPostBackControl(chkdis);
}
}
它不像這樣工作,因為GridView在渲染時轉換為表 。 在渲染時,更新面板肯定不會添加到每一行。 因此,最好的方法是將gridview放在updatepanel中。
將UpdatePanel移動到GridView之外,並將GridView包裝在UpdatePanel中。 如果您仍然需要在某些控件上進行回發,那么請在UpdatePanel的結束標記之前使用。
<Triggers>
<PostBackTriggers ControlId="YourControlId"/>
<Triggers>
</asp:UpdatePanel>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.