0

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

如何在代码隐藏方法中访问 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 中的删除链接按钮时,会发生,

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 %>', "");
        });
4

1 回答 1

2

您可以将 投射sender到一个按钮并从中获取信息。

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

更新

选择(Cast)objectvs时,object as object请参见直接铸造与“作为”操作员?

更新 2

当您想将一些参数传递给通过 JavaScript 设置的代码时,您可以使用EVENTARGUMENT

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

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

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

string parameter = Request["__EVENTARGUMENT"];
于 2013-05-02T09:41:20.667 回答