2013-01-17 5 views
0

У меня есть GridView -Получить 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. 

    } 

На отладку я могу получить с флажком изменили события, однако необходимо получить строку из ячейки profileName из соответствующей ячейки строки.

Я пытался что-то вроде этого -

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

Однако это не работает, как я могу получить строку?

ответ

4

Если вы используете BoundField, вам необходимо использовать Cells[index].Text. Так как это в третьей колонке:

string profileName = row.Cells[2].Text; 
0

вы можете дать как

Ex: вы можете сразу дать подобное;

string profilename = gridview.Rows[0].Cells[1].Text; 
+0

Фактически я упоминаю предыдущий ответ. –

Смежные вопросы