2017-12-04 24 views
0

onServerClickメソッドが動的に作成されるアンカーボタンがいくつかありますが、Webページのボタンをクリックすると関数が呼び出されません。以下はタグの例です。onServerClick関数は動的作成では機能しません

private void reportMessage(object sender, EventArgs e) 
    { 
     var btn = (HtmlAnchor)sender; 
     string content = btn.Attributes["content"].ToString(); 
     string commentCreator = btn.Attributes["creator"].ToString()} 

すべてのヘルプは高く評価されています

<a href="#" runat="server" id="button0" class="btn btn-default btn-sm" onserverclick="reportMessage" creator="Tom" content="This is a test."><i class="fa fa-flag"></i> Report</a> 

そして、ここでは、呼び出されるメソッドの一部です。

+0

おそらくあなたは、このようなものが必要。 –

答えて

0

button0は、HTMLのアンカーコントロールIDですので、あなたがこのような各アンカーリンクを処理するためにPage_LoadイベントにServerClickイベントにハンドラを追加することができますが:

protected void Page_Load(object sender, EventArgs e) 
{ 
    HtmlAnchor btn = button0 as HtmlAnchor; 
    btn.ServerClick += new EventHandler(reportMessage); 
} 

また、あなたがonclickイベントを追加することができ、サーバのクリックを確保するためにreturn trueが含まれていますイベントが発生しています。

<a href="#" runat="server" id="button0" onserverclick="reportMessage" onclick="return true;" ...>Link Text</a> 

NBは:reportMessageHtmlAnchorにバインドされたイベントハンドラメソッドですので、私が代わりにprivateprotectedレベルを使用することをお勧めします。

同様の問題:あなたは、これらの属性値を得ることができる前に `btn.ServerClick + =新しいEventHandlerの(reportMessage)` Page_Load`イベント `上:

Adding onserverclick event to a HtmlAnchor dynamically

+0

これは理にかなっていますが、私はこれらのアンカータグをIDを含めて動的に作成しているので、ページロードでこれらのメソッドを呼び出すことはできません。まだ存在しないか、作成されたアンカータグの量を知ることができません。これを実現するための提案はありますか? –

関連する問題