1

これについて頭を悩ませています。以下のコードのレンダリングされた HTML では、btnEdit (GridView 内) の onclick パラメーター (onclick="javascript:WebForm_DoPostBack...") に正しい Javascript が含まれています。btnAddNew には onclick ハンドラがまったくありません。なんで?コンパイル エラーや実行時エラーはなく、ページは Form タグを持つマスター ページを使用しています。

<ContentTemplate>
<asp:ImageButton ID="btnAddNew" SkinID="btnAddNew" runat="server" 
    PostBackUrl='<%# "EditUser.aspx?action="+Constants.actionAdd %>' /> 
<asp:GridView ID="UserGridView" 
      runat="server" 
      DataKeyNames="UserId" 
      >  
      <Columns>
        <asp:TemplateField
              <ItemTemplate>
                  <asp:ImageButton id="btnEdit" SkinID="btnEdit" runat="server" 
                    PostBackUrl='<%# Eval("UserId", "EditUser.aspx?
                     action="+Constants.actionEdit+"&uid={0}") %>' />
              </ItemTemplate>
        </asp:TemplateField>                                        
      </Columns>          
</asp:GridView>

4

1 に答える 1

4

btnAddNew ボタンにはデータ バインディング タグ (<%#) は必要ないようです。したがって、サーバー側でこのプロパティを割り当てることができます:

btnAddNew.PostBackUrl = "EditUser.aspx?action=" + Constants.actionAdd;
于 2009-09-19T20:00:19.360 に答える