如何从行按钮的onclick事件中获取数据表中的列值

问题描述 投票:0回答:1

我想从行按钮的onclick事件中获取行的列值(并进行查询操作)。我怎样才能做到这一点 ?当按下 btnAktar 时,我想获取该行中的 Meslek 列的值。谢谢。我的网格视图如下:

       <iskurControls:IskurGridView runat="server"
                ID="ctlGridSgkTecrube"
                AutoGenerateColumns="False"
                EmptyDataText="Tecrübe Bilginiz Bulunmamaktadır."
                EnableViewState="true"
                CssClass="table table-bordered table-condensed text-small">
                <Columns>
                    <asp:TemplateField HeaderText="Seç">
                        <ItemTemplate>
                            <asp:Button ID="btnAktar" runat="server" Text="Aktar" CommandName="AktarRow"  class = "inp" OnClientClick="return callme(this)" OnClick="btnIstecrubesi_Click" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="ISYERISICILNO" HeaderText="İşyeri Sicil No" >
                        <HeaderStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="ISYERIADI" HeaderText="İşyeri Adı" >
                        <HeaderStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="MESLEKKODU" HeaderText="Meslek Kodu">
                        <HeaderStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="MESLEK" HeaderText="Meslek">
                        <HeaderStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="SURE" HeaderText="Süre">
                        <HeaderStyle HorizontalAlign="Right" />
                    </asp:BoundField>
                    <asp:BoundField DataField="BASLANGICTARIHI" HeaderText="Baş Tar">
                        <HeaderStyle HorizontalAlign="Right" />
                    </asp:BoundField>
                    <asp:BoundField DataField="BITISTARIHI" HeaderText="Bit Tar" DataFormatString="{0:d}" >
                        <HeaderStyle HorizontalAlign="Right" />
                    </asp:BoundField>
                    <asp:BoundField DataField="SEKTOR" HeaderText="Sektör" ItemStyle-CssClass="Hide" HeaderStyle-CssClass="Hide"  />
                    
                </Columns>
                <PagerStyle CssClass="grid-PagerStyle"></PagerStyle>
                <SelectedRowStyle CssClass="grid-SelectedRowStyle"></SelectedRowStyle>
                <HeaderStyle CssClass="grid-HeaderStyle"></HeaderStyle>
                <EditRowStyle CssClass="grid-EditRowStyle"></EditRowStyle>
                <AlternatingRowStyle CssClass="grid-AlternatingRowStyle"></AlternatingRowStyle>
                <FooterStyle CssClass="grid-FooterStyle"></FooterStyle>
                <RowStyle CssClass="grid-RowStyle"></RowStyle>
                <EmptyDataRowStyle CssClass="grid-EmptyRow" />
            </iskurControls:IskurGridView>

当按下 btnAktar 时,我想获取该行中的 Meslek 列的值。我需要在后端执行此操作。

asp.net webforms aspxgridview
1个回答
0
投票

使用commandArgument <%# ((GridViewRow) Container).RowIndex %>解决了。

          <iskurControls:IskurGridView runat="server"
                ID="ctlGridSgkTecrube"
                AutoGenerateColumns="False"
                EmptyDataText="Tecrübe Bilginiz Bulunmamaktadır."
                EnableViewState="true"
                CssClass="table table-bordered table-condensed text-small" OnRowCommand="ctlGridSgkTecrube_RowCommand">
                <Columns>
                    <asp:TemplateField HeaderText="Seç">
                        <ItemTemplate>
                            <asp:Button CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" ID="btnAktar" runat="server" Text="Aktar" CommandName="AktarRow"  class = "inp" OnClientClick="return callme(this)"  />
                        </ItemTemplate>
                    </asp:TemplateField>


    protected void ctlGridSgkTecrube_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int row = Convert.ToInt32(e.CommandArgument.ToString());
        String v = ctlGridSgkTecrube.Rows[row].Cells[4].Text;


        
    }
© www.soinside.com 2019 - 2024. All rights reserved.