日期:2014-05-17 浏览次数:20552 次
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="Button" onclick="Button1_Click" />
<asp:Button ID="Button3" runat="server" Text="Button" onclick="Button1_Click" />
------解决方案--------------------
asp:Button 生成的是 submit, 所以不会调用 __doPostback 所以Page_Load里也不能用
"__EVENTTARGET"获得Button ID。。。得考虑别的办法。。。
------解决方案--------------------
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
var request = this.Request;
var ctrl = GetPostBackControl(this);
var id = ctrl.ID;
}
}
public static Control GetPostBackControl(Page page)
{
Control control = null;
string ctrlname = page.Request.Params.Get("__EVENTTARGET");
if (ctrlname != null && ctrlname != String.Empty)
{
control = page.FindControl(ctrlname);
}
else
{
foreach (string ctl in page.Request.Form)
{
Control c = page.FindControl(ctl);
if (c is System.Web.UI.WebControls.Button)
{
control = c; break;
}
}
}
return control;
}
------解决方案--------------------
直接把事件名称用URL传回去咯,其实跟楼上的在根本上差不多
------解决方案--------------------
4楼的方法比较实在...
------解决方案--------------------
好像使用委托调用(多路)---可以的。
想不起来了。 帮你顶
------解决方案--------------------
恩 ,这个可以。