我有2个按钮并且在页面加载中,我想检查按下了哪个按钮。
所以我用过:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
if (string.IsNullOrEmpty(Request.Form["__EVENTTARGET"].ToString()))
{
[COMES HERE]
}
else
{
string eTarget = Request.Form["__EVENTTARGET"].ToString();
}
}
else
{
LoadAllData();
}
}
在这里,按下按钮后,它显示为null
。
我怎么知道按下了哪个按钮?
答案 0 :(得分:0)
您需要手动进行回发,并使用ASP.NET内置函数__doPostBack("target","arguments")
首先,在您的aspx页面上创建一个js函数,该函数将由客户端的按钮调用:
function ManualPostback(postbackTarget) {
__doPostBack(postbackTarget.id, "");
}
现在,您需要在按钮上添加2个新属性:
OnClientClick
- 当客户点击按钮ClientIDMode="static"
- 这告诉ASP.NET让按钮保留您分配给它们的ID,而不是像默认情况那样为客户端生成新的你的按钮看起来应该是这样的:
<asp:Button ClientIDMode="Static" ID="Button1" runat="server" Text="Button" OnClientClick="ManualPostback(this);"/>
<asp:Button ClientIDMode="Static" ID="Button2" runat="server" Text="Button" OnClientClick="ManualPostback(this);" />
答案 1 :(得分:0)
要让您的代码正常工作,您似乎必须拥有UseSubmitBehavior="false"
例如:
<asp:Button runat="server" ID="btn1" Text="Button 1" OnClick="btn1_Click" UseSubmitBehavior="false" />