0

在我的项目中,我有一个数据中继器,在一个更新面板中,带有一个链接按钮。当用户单击链接按钮时,会发生部分回发并更改链接按钮的文本属性。问题是:当用户再次单击同一个按钮时,即使我可以在网页上实际看到新的文本值,但当调试器命中事件时,发送者对象说文本值是旧值,而不是最后一个更新。有谁知道为什么?这是代码:

<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
4

1 回答 1

0

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

DataBind将您的活动包装在If Not IsPostBack

If Not IsPostBack
    'Bind your datasource
End If 
于 2013-02-04T18:35:03.457 回答