0

私はGridViewを持っています -

<asp:GridView ID="table_example" Runat="server" 
DataSourceID="SqlDataSource3" AutoGenerateColumns="False" 
ClientIDMode="Static" onprerender="table_example_PreRender">
    <Columns>
        <asp:TemplateField>
     <HeaderTemplate>
         <asp:Label ID="Label1" runat="server" Text="Select"></asp:Label>

     </HeaderTemplate>
     <ItemTemplate>
        <asp:CheckBox ID="chkRow" runat="server" OnCheckedChanged="CheckBoxPN_CheckedChanged" AutoPostBack="true"/>
     </ItemTemplate>
  </asp:TemplateField>
        <asp:BoundField HeaderText="profileID" DataField="profileID" 
                        SortExpression="profileID"></asp:BoundField>
        <asp:BoundField HeaderText="profileName" DataField="profileName" 
                        SortExpression="profileName"></asp:BoundField>
    </Columns>
</asp:GridView>

コードの背後にある場所chkRow-

protected void CheckBoxPN_CheckedChanged(Object sender, EventArgs e)
    {
        CheckBox chk = (CheckBox)sender;
        GridViewRow row = (GridViewRow)chk.NamingContainer; 

        //when a user clicks the checkbox I need the string from profileName in that row. 

    }

デバッグ時に checkBox changed イベントを取得できますがprofileName、それぞれの行セルからセルから文字列を取得する必要があります。

私はこのようなことを試しました -

string c = row.Cells("profileName").value.toString();

ただし、これは機能しませんでした。どうすれば文字列を取得できますか?

4

2 に答える 2

4

a を使用する場合は、 を使用するBoundField必要がありますCells[index].Text。3 番目の列にあるため、次のようになります。

string profileName = row.Cells[2].Text;
于 2013-01-17T17:15:20.940 に答える
0

あなたはのように与えることができます

例:あなたはすぐに次のように与えることができます;

string profilename = gridview.Rows[0].Cells[1].Text;
于 2013-01-17T17:23:04.033 に答える