ASP.net命令名不会触发

时间:2012-07-03 19:24:32

标签: asp.net events button command arguments

我在尝试使用参数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是否与它有关)

1 个答案:

答案 0 :(得分:1)

快速测试,你提供的代码是有效的,但我必须连接我自己的数据源。

您在这里缺少的是Label1在UpdatePanel之外,并且不会根据UpdatePanel中的本地化回发进行刷新。

使用GridViews和UpdatePanels / Buttons时要小心谨慎。确保在Page_Load期间没有手动绑定/重新绑定,如果有代码,则在if(!IsPostBack) { }语句中执行此操作。