1

私はasp.netが初めてです。私は1つのプロジェクトをやっています。その中で、1つのグリッドビューを使用し、sqldatasourceを使用してデータベースからデータをフェッチしました。gridviewコードは

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataSourceID="Library" CellPadding="4" ForeColor="#333333" 
    GridLines="None" OnRowDataBound="GridView1_RowDataBound" >
    <RowStyle BackColor="#EFF3FB" />
    <Columns>
        <asp:BoundField DataField="Sl_No" HeaderText="Sl_No" SortExpression="Sl_No" />
        <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
        <asp:BoundField DataField="Author" HeaderText="Author" 
            SortExpression="Author" />
        <asp:BoundField DataField="Publication" HeaderText="Publication" 
            SortExpression="Publication" />
        <asp:BoundField DataField="Available" HeaderText="Status" 
            SortExpression="Available" />
        <asp:TemplateField HeaderText="Availability">
            <ItemTemplate>
                <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("Available") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="RIUserTaken" HeaderText="RIUserTaken" 
            SortExpression="RIUserTaken" Visible="False" />
        <asp:TemplateField HeaderText="Taken By" ShowHeader="False">
            <ItemTemplate>
                <asp:Label ID="Label4" runat="server" Text='<%# Eval("RIUserTaken", "{0}") %>'></asp:Label>
                <asp:Button ID="SendRequest" runat="server" Text="Button" Visible="False" 
                    onclick="SendRequest_Click" CommandName="SendRequestCmd" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Taken Date" InsertVisible="False" 
            ShowHeader="False">
            <ItemTemplate>
                <asp:Label ID="Label3" runat="server" Text='<%# Eval("TakenDate") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
    <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
    <EditRowStyle BackColor="#2461BF" />
    <AlternatingRowStyle BackColor="White" /> </asp:GridView>

コードは、グリッド ビューの列の 1 つです。そのボタンをクリックすると、そのボタンに含まれる行のすべてのデータが文字列変数に格納されます。文字列 slno="" のように; slno=gridview1.cells[0].text; (それが正しいかどうかはわかりません)誰か助けてください??

前もって感謝します :)

4

2 に答える 2

1

msdn から、これを確認する必要があります。 GridView.SelectedIndexChanged イベント

void CustomersGridView_SelectedIndexChanged(Object sender, EventArgs e)
{
// Get the currently selected row using the SelectedRow property.
GridViewRow row = CustomersGridView.SelectedRow;

// Display the company name from the selected row.
// In this example, the third column (index 2) contains
// the company name.
MessageLabel.Text = "You selected " + row.Cells[2].Text + ".";
}

void CustomersGridView_SelectedIndexChanging(Object sender, GridViewSelectEventArgs e)
{

// Get the currently selected row. Because the SelectedIndexChanging event
// occurs before the select operation in the GridView control, the
// SelectedRow property cannot be used. Instead, use the Rows collection
// and the NewSelectedIndex property of the e argument passed to this 
// event handler.
GridViewRow row = CustomersGridView.Rows[e.NewSelectedIndex];

// You can cancel the select operation by using the Cancel
// property. For this example, if the user selects a customer with 
// the ID "ANATR", the select operation is canceled and an error message
// is displayed.
if (row.Cells[1].Text == "ANATR")
{

  e.Cancel = true;
  MessageLabel.Text = "You cannot select " + row.Cells[2].Text + ".";

}
}
于 2012-10-12T07:45:15.763 に答える
0

これらのことをする

ステップ1.RowCommandEvntをGridViewに接続します
ステップ2.コードビハインドでそのイベント内で、これを実行します

if(e.CommandName.Equals("SendRequestCmd"))
{
    var clickedRow = ((Button)e.CommandSource).NamingContainer as GridViewRow;
    // now access the cells like this
    var clickedSLNo = clickedRow.cells[0].Text;
}


アップデート:

e.CommandSource意味

コマンドのソースを表すSystem.Objectクラスのインスタンス。


IButtonControl.CommandArgument意味

IButtonControlインターフェイスを実装するコントロールは、Commandイベントに伝達される引数とコマンド名を示すためにCommandArgumentプロパティとCommandNameプロパティを実装する必要があります。

于 2012-10-12T06:40:33.743 に答える