我如何访问asp.net按钮's "文本"在代码隐藏方法中

How can I access asp.net button's "Text" in a code behind method?

本文关键字:quot 文本 代码 方法 隐藏 访问 asp 按钮 net 何访问      更新时间:2023-09-26

关于我在不应该删除记录时删除记录的问题't

我如何访问asp.net按钮的"文本"在代码背后的方法?

按钮的样式如下:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
    <ContentTemplate>
    <asp:Button ID="HiddenButton" Text="" runat="server" OnClick="Deleting_Click" /> 

下面是我的代码:

protected void Deleting_Click(object sender, EventArgs e)
        {

我已经试过了:

 HiddenButton.Text = Request.Form["HiddenButton"].ToString();

Request["__EVENTARGUMENT"];

但是什么都没用,谁能告诉我正确的方向吗?

编辑

我可以怎么用这个吗?但不确定:

 $(document).ready(function () {
       var prm = Sys.WebForms.PageRequestManager.getInstance();    
       prm.add_initializeRequest(InitializeRequest);
       prm.add_endRequest(EndRequest);
    });    

实际发生的是,当用户点击GridView中的delete linkbutton时,这会发生,

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        LinkButton link = e.Row.Cells[4].Controls[2] as LinkButton;
        if(link.Text == "Delete")
            link.OnClientClick = "return ConfirmationBox("+ ((DataRowView)e.Row.DataItem)["userID"].ToString() +")";
    }
}

现在在JS中,我正在捕捉显示消息框并总是返回false的动作,然而,我正在设置隐藏按钮的文本,以便我可以将其发送到代码中的方法,以便使用UserID

删除记录
   function ConfirmationBox(userID) 
    {     
        var elem = document.getElementById('<%= HiddenButton.ClientID %>');
        elem.value = userID;
        $.blockUI({ message: $('#question'), css: { width: '275px' } 
        });
        return false;
    }

现在我得到了我需要的ID,可以让用户选择是或否,如果用户点击是,那么就会发生,

$('#yes').click(function() { 
            $.unblockUI(); 
          //  $('<%= HiddenButton.ClientID %>').trigger('click');
          __doPostBack('<%=HiddenButton.ClientID %>', "");
        });

您可以将sender转换为按钮并从中获取信息。

protected void Deleting_Click(object sender, EventArgs e)
{
    Button btn = (Button) sender;
    var text = btn.Text;
}

当选择(Cast)object vs object as object时,请参见直接铸造vs 'as'运营商吗?

更新2

当你想通过JavaScript传递一些参数到你的代码时,你可以通过EVENTARGUMENT

传递它们

所以当调用__doPostBack('','');时你可以在这里设置它。在您的情况下,您需要将代码更新为;

__doPostBack('<%=HiddenButton.ClientID %>', 'Your Argument Here');

然后在Deleting_Click方法中,您可以获得参数;

string parameter = Request["__EVENTARGUMENT"];
相关文章: