aspx中的form如下:
<form id="Login" method="post" runat="server" onsubmit="fncDisableBtn();">aspx.cs中加了如下代码:
this.GetPostBackEventReference(btnAdd); //btnAdd是一个按钮的名字javascript代码:
function fncDisableBtn()
{
var e_all = document.all.tags('INPUT');
for(i=0;i<e_all.length;i++)
{
if (e_all[i].type == 'submit')
{
e_all[i].disabled = true;
}
}
__doPostBack('btnAdd','');
}现在的效果是:点了btnAdd后,能把所有按钮都变灰了,并且能调用btnAdd按钮的onclick后台代码。我现在的问题是:画面上有很多按钮,每一个都可能提交数据,触发form的onsubmit,所以我得调用该按钮对应的后台代码,在__doPostBack('btnAdd','');函数中不能写死为btnAdd,而应该是触发事件的按钮名字。但是不知道怎么能得到这个按钮的名字?
<form id="Login" method="post" runat="server" onsubmit="fncDisableBtn();">aspx.cs中加了如下代码:
this.GetPostBackEventReference(btnAdd); //btnAdd是一个按钮的名字javascript代码:
function fncDisableBtn()
{
var e_all = document.all.tags('INPUT');
for(i=0;i<e_all.length;i++)
{
if (e_all[i].type == 'submit')
{
e_all[i].disabled = true;
}
}
__doPostBack('btnAdd','');
}现在的效果是:点了btnAdd后,能把所有按钮都变灰了,并且能调用btnAdd按钮的onclick后台代码。我现在的问题是:画面上有很多按钮,每一个都可能提交数据,触发form的onsubmit,所以我得调用该按钮对应的后台代码,在__doPostBack('btnAdd','');函数中不能写死为btnAdd,而应该是触发事件的按钮名字。但是不知道怎么能得到这个按钮的名字?
<asp:Button id="Button10" runat="server" Text="Button3"></asp:Button> /// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{ this.Button9.Click += new System.EventHandler(this.Button9_Click);
this.Button10.Click += new System.EventHandler(this.Button9_Click);
this.Load += new System.EventHandler(this.Page_Load); } private void Button9_Click(object sender, System.EventArgs e)
{
//...............
}
this.Button1.Attributes.Add("onclick","fncDisableBtn()");不就行了吗?
函数改成了:function fncDisableBtn(btnName)
aspx.cs中增加了:this.btnAdd.Attributes.Add("onclick","fncDisableBtn(this)");但是,用__doPostBack(btnName,'');时候出错了,不响应后台函数。
各位在帮忙看看该怎么写。
<form id="Login" method="post" runat="server" onsubmit="fncDisableBtn(btnName);">aspx.cs中加了如下代码:
this.GetPostBackEventReference(btnAdd); //btnAdd是一个按钮的名字javascript代码:
function fncDisableBtn(btnName)
{
var e_all = document.all.tags('INPUT');
for(i=0;i<e_all.length;i++)
{
if (e_all[i].type == 'submit')
{
e_all[i].disabled = true;
}
}
__doPostBack(btnName,'');
}在aspx.cs的PageLoad里加入下列代码
if (!IsPostBack)
{
Button1.Attributes.Add("onclick","fncDisableBtn('Button1')");
Button2.Attributes.Add("onclick","fncDisableBtn('Button2')");
.............
}
这样的话就可以根据名字来触发了
{
this.btnAdd.attributes.add("onclick","fncDisableBtn()");
}
this.GetPostBackEventReference(btnAdd); //btnAdd是一个按钮的名字
btnAdd也是固定的?如果这样那不行的.如果不是固定的那就是你为每个按钮都写了事件?功能一样每个按钮都写一遍?这样不更麻烦? 我觉得还是试试我的第一种方法好.很多按钮触发同一个事件.
aspx中:去掉form中的函数onsubmit="fncDisableBtn();",如下:
<form id="Login" method="post" runat="server">aspx.cs中的代码:this.GetPostBackEventReference(btnAdd);
this.btnAdd.Attributes.Add("onclick","fncDisableBtn('btnAdd')");this.GetPostBackEventReference(btnReset);
this.btnReset.Attributes.Add("onclick","fncDisableBtn('btnReset')");javascript代码:function fncDisableBtn(btnName)
{
var e_all = document.all.tags('INPUT');
for(i=0;i<e_all.length;i++)
{
if (e_all[i].type == 'submit')
{
e_all[i].disabled = true;
}
}
__doPostBack(btnName,'');
}谢谢各位了,马上给分。