C# 如何访问asp.net按钮';s";“文本”;在代码隐藏方法中?
关于我的问题 如何在代码隐藏方法中访问asp.net按钮的“文本” 下面是按钮的外观: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: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"];