在updatepanel中,在回发后仍然处理按钮

时间:2013-05-08 06:15:50

标签: c# asp.net updatepanel

我有一张带按钮的桌子。它遇到的问题是,当您单击一个按钮时,将绘制一个新表。当绘制新表时,按钮仍然是可点击的,如果再按一次,该页面将给出具有相同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>

1 个答案:

答案 0 :(得分:1)

这是viewstate的一个问题,因为当你处理按钮时它会丢失它在服务器端的引用,尽管你可以通过制作来解决这个问题 Button.Visible=false;

然后在可见的真实条件下执行特定任务,或者您可以在特定事件中再次显示按钮。通过在服务器端代码(c#)中禁用它并检查它是否冗余,可以实现相同。

此致