こんにちは私は最近、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);
}
私が収集できることから、問題は、ページフォーム上のすべてのコントロール、つまり'document.forms[0]'に対して'onsubmitstatement ' を登録するコントロールにあります。現在、カスタム コントロールの作成経験は非常に限られているため、アップロード コントロールのみの「onsubmitstatement」を登録しようとする試みはすべて失敗しました。
string ctrlid = this.ClientID
string onsubmitstatement = "return AIM.submit( document.getElementById('" + ctrlid + "'), {'onStart' : " + OnStartScript + ", 'onComplete' : " + OnCompleteScript + "})";
誰でも私を助けることができますか?このコントロールのみに onsubmit 関数を登録する方法はありますか?