在网格视图中,更新面板不起作用
本文关键字:不起作用 更新 网格 视图 | 更新日期: 2023-09-27 18:35:52
html code
<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
{
}
}
我已经将更新面板放在网格视图中,但仍然在单击我的复选框时,我的页面会刷新。我该怎么办?我不希望我的页面刷新
尝试从代码隐藏将此CheckBox
注册为异步回发控件:
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);
}
}
尝试将 UpdatePanel 移出 GridView,
并将整个 GridView 包装在 UpdatePanel 中,看看这是否有所作为。
它不像这样工作,因为 GridView 在呈现时会转换为表格。更新面板在渲染时不一定会添加到每一行。因此,最好的方法是将网格视图放在更新面板中。
将 UpdatePanel
移出 GridView,并将 GridView 包装在 UpdatePanel 中。如果仍需要回发某些控件,请使用,就在 UpdatePanel 的结束标记之前。
<Triggers>
<PostBackTriggers ControlId="YourControlId"/>
<Triggers>
</asp:UpdatePanel>