1

パラメータCommandName="x"を使用してGridViewでボタンを起動しようとすると問題が発生し、GridView1_RowCommandイベントで "If"に到達しようとしますが、何らかの理由でできません。感謝します。

これは私の.aspxの部分です

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
 <ContentTemplate>
    <asp:GridView ID="GridView1" runat="server" CellPadding="4" 
            EnableModelValidation="True" ForeColor="#333333" GridLines="None" 
            Height="193px" Width="968px" AllowPaging="True" AllowSorting="True" 
            AutoGenerateColumns="False" DataKeyNames="ID" 
            DataSourceID="SOURCE1" onrowcommand="GridView1_RowCommand">
            <AlternatingRowStyle BackColor="White" />
            <Columns>
            <asp:TemplateField ShowHeader="False">
                <ItemTemplate>
                    <asp:Button Text = "Seleccionar" runat="server" CommandName="X" CommandArgument='<%# Container.DataItemIndex %>' />
                </ItemTemplate>
            </asp:TemplateField>
                <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
                    ReadOnly="True" SortExpression="ID" />
                <asp:BoundField DataField="IDEmpresa" HeaderText="IDEmpresa" 
                    SortExpression="IDEmpresa" />
            </Columns>
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        </asp:GridView> 
   </ContentTemplate>
</asp:UpdatePanel>

そしてこれは私のC#コードです:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "X")
    {
        int index = Convert.ToInt32(e.CommandArgument);
        GridViewRow row = GridView1.Rows[index];
        Label1.Text = "WOW It reached out";
    }
}

ASP.netページの指示に従い、.netはかなり新しいです(UpdatePanelがそれと関係があるかどうかはわかりません)

4

1 に答える 1

1

簡単なテストを行うと、提供したコードは機能しますが、自分のデータソースを接続する必要がありました。

ここで欠落しているのは、Label1がUpdatePanelの外部にあり、UpdatePanel内のローカライズされたポストバックに基づいて更新されないことです。

GridViewsとUpdatePanels/Buttonsに関する注意事項。Page_Load中に手動でバインド/再バインドしていないことを確認してください。そうするためのコードがある場合は、if(!IsPostBack) { }ステートメント内で行ってください。

于 2012-07-03T20:00:20.720 に答える