2015-05-05 3 views
1

Это моя разметка: -Невозможно получить текстовое значение LinkButton в GridView

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
     Width="245px" onrowcommand="GridView1_RowCommand" > 
     <Columns> 

      <asp:TemplateField> 
      <ItemStyle BackColor="#CCCCCC" ForeColor="Black" Width="250px" HorizontalAlign="Center" 
        BorderStyle="None" /> 
        <ItemTemplate> 
         <asp:LinkButton ID="userList" runat="server" CommandName="Select" CommandArgument ='<%# Container.DataItemIndex %>' Text='<%# Bind("users") %>'></asp:LinkButton> 
        </ItemTemplate> 
      </asp:TemplateField> 

     </Columns>   
    </asp:GridView> 

А в коде, я пытаюсь получить текстовое значение текущей строки, но не могу показаться, чтобы получить Это;

он возвращает "".

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    int rowValue = Convert.ToInt32(e.CommandArgument.ToString()); 
    GridView1.SelectedIndex = rowValue; 
    string test = GridView1.SelectedRow.Cells[0].Text; 
} 
+0

Приведенный выше код дает «Индекс был вне допустимого диапазона». Исключение из 'GridView1.SelectedRow'. Это полная html-разметка? –

ответ

6

Вы должны найти и Acces элементу управления

LinkButton btn = (LinkButton)gvDealerSupportMail.Rows[rowValue].FindControl("userList"); 
string result = btn.Text; 
1

вы можете использовать CommandSource, чтобы получить Command.Text, CommandName и CommandArgument.

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
     LinkButton commandSource = e.CommandSource as LinkButton; 
     string commandText = commandSource.Text; 
     string commandName = commandSource.CommandName; 
     int commandArgument = Convert.ToInt32(commandSource.CommandArgument); 
    } 

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

  • Нет связанных вопросов^_^