我有一张带按钮的桌子。它遇到的问题是,当您单击一个按钮时,将绘制一个新表。当绘制新表时,按钮仍然是可点击的,如果再按一次,该页面将给出具有相同ID的内容持有者的错误。整个表位于更新面板中,我认为更新面板将在回发后释放其中的所有内容。但不幸的是,它没有。 (每次回发都会重新绘制表格)
我现在的想法是处理点击的按钮,这样就不能点击burron两次了。但是,如果我现在单击一个按钮并单击另一行中的另一个按钮,则仍会处理fisrt按钮...
您是否知道另一种方法或强制更新面板清除所有按钮?
protected void Page_Load(object sender, EventArgs e)
{
getFilterValues();
getItemsOutOfviewState();
drawTableOne();
}
private void drawTableTwoClick(object sender, CommandEventArgs e)
{
ImageButton test = (ImageButton)(sender);
test.ImageUrl = "~/img/minus.gif";
test.Dispose();
drawTableTwo(siteAlias, rowNumber);
}
<asp:UpdatePanel runat="server" ID="up_tableMain" UpdateMode="Conditional">
<ContentTemplate>
<asp:Table runat="server" ID="tbl_main" BorderStyle="Solid" BorderWidth="2" GridLines="Both" BackColor="White" class="tablesorter">
</ContentTemplate>
</asp:UpdatePanel>
答案 0 :(得分:1)
这是viewstate的一个问题,因为当你处理按钮时它会丢失它在服务器端的引用,尽管你可以通过制作来解决这个问题
Button.Visible=false;
然后在可见的真实条件下执行特定任务,或者您可以在特定事件中再次显示按钮。通过在服务器端代码(c#)中禁用它并检查它是否冗余,可以实现相同。
此致