2016-11-10 91 views
0
  <asp:TemplateField HeaderText="Employee ID" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="10%"> 
       <ItemTemplate> 
        <asp:Label runat="server" ID="ONE" Text='<%#Eval("REG_ID") %>' /> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Name" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="20%"> 
       <ItemTemplate> 
        <asp:Label runat="server" ID="TWO" Text='<%#Eval("Name") %>' /> 
       </ItemTemplate> 
      </asp:TemplateField> 
    <asp:TemplateField HeaderText="View" HeaderStyle-BackColor="DarkBlue" HeaderStyle-ForeColor="White" ItemStyle-Width="5%"> 
       <ItemTemplate> 
        <asp:LinkButton ID="report" class="btn btn-warning btn-sm" Text="Report to HR" runat="server" OnClick="report_Click" /> 
       </ItemTemplate> 
      </asp:TemplateField> 

以上是我的GridView的代码。当我点击按钮时,我想从GridView中获取A和B的值。任何想法如何执行此?c#从gridview获取值

protected void report_Click(object sender, EventArgs e) 
{ 
    GridViewRow theClickedRow = ((LinkButton)sender).NamingContainer as GridViewRow; 
    if (theClickedRow != null) 
    { 
     Label FIRST = theClickedRow.FindControl("ONE") as Label; 
     Label SECOND = theClickedRow.FindControl("TWO") as Label; 
     ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" + FIRST + SECOND + "');", true); 

    } 
} 

结果,我总是得到:系统网络用户界面控制系统工作的网页介面控制

+0

试试这个,标签具有Text属性我想这是你正在寻找'ClientScript.RegisterStartupScript(的GetType()的一个,“警报” ,“alert('”+ FIRST.Text + SECOND.Text +“');”,true);' –

回答

0

FIRSTSECOND是Label对象。当您拨打"alert('" + FIRST + SECOND + "');"时,您正在打印实际对象而不是这些控件的值。

标签控件有一个属性,它允许您访问文本内容值。

您的代码应更改为以下内容:

ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" + FIRST.Text + SECOND.Text + "');", true);