0

プログラムで GridView を作成し、最後の行にボタンを追加しています。

ButtonField bc = new ButtonField();
bc.ButtonType = ButtonType.Button;
bc.Text = "Edit";
bc.CommandName = "EditAsset";
grid.Columns.Add(bc);

マークアップで、ハンドラーを指定します。

<asp:GridView ID="gvListView" OnRowCommand="gvListView_RowHandler" runat="server"></asp:GridView>

コードビハインドにハンドラーを追加します。

protected void gvListView_RowHandler(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "EditAsset")
    {

    }
}

それを実行してグリッドビューのボタンをクリックすると、__doPostBack が定義されていないという JavaScript エラーが発生します。そのためのjsが生成されない理由を知っている人はいますか?

動的に生成されたボタン呼び出しは次のようになります。

onclick="javascript:__doPostBack(&#39;lvStuff$gvListView&#39;,&#39;EditAsset$0&#39;)"

編集: ページで doPostBack が生成されましたが、その周りに何らかのコメントがありますか?

//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
4

1 に答える 1