Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何访问asp.net按钮';s";“文本”;在代码隐藏方法中?_C#_Javascript_Gridview_Webforms_Postback - Fatal编程技术网

C# 如何访问asp.net按钮';s";“文本”;在代码隐藏方法中?

C# 如何访问asp.net按钮';s";“文本”;在代码隐藏方法中?,c#,javascript,gridview,webforms,postback,C#,Javascript,Gridview,Webforms,Postback,关于我的问题 如何在代码隐藏方法中访问asp.net按钮的“文本” 下面是按钮的外观: <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true"> <ContentTemplate> <asp:Button ID="HiddenButton" Text="" runat="server" OnClick="D

关于我的问题

如何在代码隐藏方法中访问asp.net按钮的“文本”

下面是按钮的外观:

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

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

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

编辑

我能用这个吗?但不确定:

 $(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中,我捕捉到一个显示messagebox的动作,并且总是返回false,但是我设置了隐藏按钮的文本,这样我就可以将它发送给代码隐藏中的方法,以便使用UserID删除记录

   function ConfirmationBox(userID) 
    {     
        var elem = document.getElementById('<%= HiddenButton.ClientID %>');
        elem.value = userID;

        $.blockUI({ message: $('#question'), css: { width: '275px' } 
        });

        return false;
    }
函数确认框(userID)
{     
var elem=document.getElementById(“”);
elem.value=userID;
$.blockUI({message:$('#question'),css:{width:'275px'}
});
返回false;
}
现在我得到了我需要的ID,可以让用户选择是或否,如果用户单击是,则会发生这种情况

$('#yes').click(function() { 
            $.unblockUI(); 

          //  $('<%= HiddenButton.ClientID %>').trigger('click');
          __doPostBack('<%=HiddenButton.ClientID %>', "");
        });
$('#yes')。单击(函数(){
$.unbui();
//$('').trigger('click');
__doPostBack(“,”);
});

您可以将
发送者
强制转换为一个按钮,并从中获取信息

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

选择
(强制转换)对象时,请参见

更新2

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

因此,当调用
uu doPostBack('')您可以在此处进行设置。在您的情况下,您需要更新您的代码,以便:

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

按钮btn=发送者作为按钮如果转换失败,是否更好?然后,
btn
将以
null
结束,您可以在访问
text
属性之前进行检查。否则,如果我没记错的话,我认为强制转换可能会抛出一个异常。@FrançoisWahl是的,你可以,但是既然我们知道它是一个按钮,你就可以这样强制转换它。如果
按钮
将来可能更改为
链接按钮
图像按钮
,则
发送者身份按钮
将防止出现异常。但是,您仍然需要重新编码该函数。@user13814您没有在代码中设置
Text
属性,因此它是空的<代码>
@TimBJames我正在使用JS代码设置它的文本,等等,我添加了更多的代码。你能通过添加代码
\uu doPostBack(“[element name attribute]”,“[your argument]”来测试这一点吗到您的
$(函数(){…})呼叫。确保它是按钮的
name
属性,而不是ID`如果您使用javascript设置文本,则这是不可能的,您可以使用隐藏字段,并在表单提交时使用按钮的文本内容设置该字段的值。然后在代码背后读取该值。@JanJongboom我现在添加了所有代码和我试图做的事情背后的逻辑
protected void Deleting_Click(object sender, EventArgs e)
{
    Button btn = (Button) sender;
    var text = btn.Text;
}
__doPostBack('<%=HiddenButton.ClientID %>', 'Your Argument Here');
string parameter = Request["__EVENTARGUMENT"];