嗨,我最近爱上了一个扩展的上传按钮控件,我在这里发现它与 aspnet 文件上传控件一起使用时,可以以类似 gmail 的方式执行上传。唯一的问题是当控件放置在页面上时,该页面上的任何按钮都会触发扩展控件的点击事件。
在查看源代码之前,我不知道为什么会发生这种情况。
/// Basic registration of events
protected override void OnInit(EventArgs e)
{
this.Page.LoadComplete += new EventHandler(Page_LoadComplete);
base.OnInit(e);
this.Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "ScriptBlock", this.Page.ClientScript.GetWebResourceUrl(this.GetType(), "WebControls.JScripts.AIMScript.js"));
string cid = this.ClientID;
string onsubmitstatement = "return AIM.submit( document.forms[0], {'onStart' : " + OnStartScript + ", 'onComplete' : " + OnCompleteScript + "})";
this.Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "OnSubmitScript", onsubmitstatement);
}
据我所知,问题在于为页面表单上的所有控件注册“onsubmitstatement ”的控件,即“document.forms[0]”。现在我在创作自定义控件方面的经验非常有限,所以我为仅上传控件注册“onsubmitstatement”的所有努力都失败了,例如
string ctrlid = this.ClientID
string onsubmitstatement = "return AIM.submit( document.getElementById('" + ctrlid + "'), {'onStart' : " + OnStartScript + ", 'onComplete' : " + OnCompleteScript + "})";
谁能帮我?有没有办法只为这个控件注册 onsubmit 函数?