Asp.net 更改链接按钮文本时的异常行为

Asp.net 更改链接按钮文本时的异常行为,asp.net,vb.net,Asp.net,Vb.net,在我的项目中,我有一个datarepeater,在updatepanel中,有一个linkbutton。当用户单击linkbutton时,会发生部分回发,并更改linkbutton的文本属性。问题是:当用户再次单击同一按钮时,即使我可以在网页上看到新的文本值,但当调试器点击事件时,发送者对象会说文本值是旧值,而不是上次更新的值。有人知道为什么吗?代码如下: <asp:LinkButton runat="server" ID="lbEdit" Text="Edit" EnableViewSt

在我的项目中,我有一个datarepeater,在updatepanel中,有一个linkbutton。当用户单击linkbutton时,会发生部分回发,并更改linkbutton的文本属性。问题是:当用户再次单击同一按钮时,即使我可以在网页上看到新的文本值,但当调试器点击事件时,发送者对象会说文本值是旧值,而不是上次更新的值。有人知道为什么吗?代码如下:

<asp:LinkButton runat="server" ID="lbEdit" Text="Edit" EnableViewState="true"  OnClick="edit_click" CommandArgument='<%# Eval("user.networkId") %>'></asp:LinkButton>

很可能您正在回发时重新绑定数据,因此它正在重置您的值。然后按钮点击事件被触发,因此您正确设置了
Text
。但是,当您再次回发时,文本将被重置

数据绑定
事件包装在
中,如果不是IsPostBack

If Not IsPostBack
    'Bind your datasource
End If 

为了测试,如果你对更新面板进行注释,并让页面进行完整的回发,你是否也有同样的问题?Brian,是的,即使我不使用更新面板,问题仍然会出现谢谢你的回复Mike。你是说我的中继器数据绑定?问题是,因为我使用的是更新面板,所以我想继续绑定,即使它是(并且将是)回发。@jason是的,对于您的中继器。如果您添加上述代码,您会遇到什么问题?在大多数情况下,您不需要在回发时重新绑定数据。Mike,此用户控件中的大多数操作都会触发更新面板(导致部分回发)。例如,我的数据中继器有行和列(一个表)。当用户单击列标题时,我在回发上对中继器进行排序并重新绑定到中继器。“如果我只绑定回发,我就不能这么做了。”杰森,我明白了。你考虑过用类似的东西来代替中继器吗?或者哪家提供了排序/过滤功能(无需回发)?无论如何,考虑把你的中继器代码添加到这个问题中,所以你处理的一切都是清楚的。谢谢你的帮助。我最后做的只是为每一行添加另一个链接按钮。一个表示“编辑”且不隐藏,另一个表示“保存”且隐藏。当用户单击“编辑”时,我只是交换css样式,隐藏“编辑”并显示“保存”。
If Not IsPostBack
    'Bind your datasource
End If