0

ispostback = trueに設定されているgridviewのItemTempletフィールドにrdiobuttonリストがありますが、まだradiobuttonリストはgridviewのrow_commandイベントを発生させていません。ボタンに対して同じことをすると、正常に動作します。(!IspostBack) でグリッドをバインドするコードを書きましたが、まだ問題があります.どうすればこれらを取り除くことができますか?

これは私のグリッドのコードです。

<asp:GridView ID="grdSalesPerson" runat="server" AutoGenerateColumns="False" BackColor="#DEBA84" OnRowCommand="grdSalesPerson_RowCommand">
                    <Columns>
                        <asp:BoundField DataField="SalesPersonID" HeaderText="SalesPersonID" />
                        <asp:BoundField DataField="FirstName" HeaderText="First Name" />
                        <asp:BoundField DataField="LastName" HeaderText="Last Name" />
                        <asp:BoundField DataField="UserName" HeaderText="User Name" />
                        <asp:BoundField DataField="StateName" HeaderText="State Name" />
                        <asp:BoundField DataField="CityName" HeaderText="City Name" />

                        <asp:TemplateField HeaderText="Is Active">
                            <ItemTemplate>
                                <asp:RadioButtonList ID="rbActive" runat="server" CommandName="IsAct" AutoPostBack="true">
                                    <asp:ListItem>Yes</asp:ListItem>
                                    <asp:ListItem>No</asp:ListItem>
                                </asp:RadioButtonList>
                            </ItemTemplate>
                        </asp:TemplateField>  
                    </Columns>
                </asp:GridView>

これは Row_Command イベントのコードです

protected void grdSalesPerson_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{
    if (e.CommandName == "IsAct")
    {
        //  GridViewRow row = (GridViewRow) (((Button)grdSalesPerson.FindControl("btnIsActive")).NamingContainer);
        GridViewRow row = (GridViewRow)(((RadioButton)e.CommandSource).NamingContainer);
        int i = Convert.ToInt32(row.Cells[0].Text);
    }
}
4

0 に答える 0