0

グリッドビューから値を選択しようとしていますが、空の文字列を返します。

<asp:GridView ID="GridViewLedger" runat="server" Width="100%" AutoGenerateColumns="False"
                        ShowFooter="True" DataKeyNames="AccountID" OnRowCommand="GridViewLedger_RowCommand"
                        CssClass="table table-hover table-striped table-bordered">
                        <Columns>


                            <asp:TemplateField HeaderText="InvoiceNo" SortExpression="InvoiceNo">
                              <ItemTemplate>
                                <asp:LinkButton ID="btnClickInvoiceNo" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" CommandName="InvoiceNo" Text='<%# Eval("InvoiceNo") %>' />
                              </ItemTemplate>
                            </asp:TemplateField>

                        </Columns>
                    </asp:GridView>

ここで無関係な列をすべて削除しました。

protected void GridViewLedger_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int index = Convert.ToInt32(e.CommandArgument);
        string InvoiceNo = GridViewLedger.Rows[index].Cells[4].Text;
    }
4

2 に答える 2

3

行セルの .Text にアクセスして、TemplateField の ItemTemplate 内の LinkBut​​ton の Text にアクセスすることはできません。

あなたができることは

LinkButton lbInvoiceNo = GridViewLedger.Rows[index].Cells[4].FindControl("btnClickInvoiceNo");
string invoiceNo = lbInvoiceNo.Text;
于 2015-03-06T09:58:45.227 に答える
0

試す..

    if (e.CommandName == "InvoiceNo")
    {
        int index = Convert.ToInt32(e.CommandArgument);
        string InvoiceNo = GridViewLedger.Rows[index].Cells[4].Text;
    }

試行 2:

       if (e.CommandName == "InvoiceNo")
       {
        int index = Convert.ToInt32(e.CommandArgument);
        GridViewRow row = GridViewLedger.Rows[index];
        string InvoiceNo=row.Cells[4].Text;
       }
于 2015-03-06T09:59:19.040 に答える