在我的项目中,我在updatepanel中有一个datarepeater,带有一个linkbutton。当用户单击链接按钮时,会发生部分回发并更改链接按钮的text属性。问题是:当用户再次点击同一个按钮时,即使我可以在网页上实际看到新的文本值,当调试器点击事件时,发送者对象说文本值是旧值,而不是最后一个更新。谁知道为什么?这是代码:
<asp:LinkButton runat="server" ID="lbEdit" Text="Edit" EnableViewState="true" OnClick="edit_click" CommandArgument='<%# Eval("user.networkId") %>'></asp:LinkButton>
代码隐藏:
Protected Sub edit_click(ByVal sender As Object, ByVal e As EventArgs)
Dim btn As LinkButton = CType(sender, LinkButton)
Dim userId As String = btn.CommandArgument
If (btn.Text = "Edit") Then
btn.Text = "Save"
else
btn.Text = "Edit"
end if
end sub
答案 0 :(得分:0)
您最有可能在回发时重新绑定数据,因此它会重置您的值。然后点击按钮点击事件,所以是的,你正确设置Text
。但是当你再次回发时,文本正在重置。
将DataBind
事件包裹在If Not IsPostBack
:
If Not IsPostBack
'Bind your datasource
End If