2017-04-25 33 views
0

我很难搞清楚如何从数据网格中的标签获取值。 (Gridview)我想从<asp:Label ID="Label4" runat="server" Text='<%# Eval("IDAfspraken") %>'></asp:Label>得到值。我想我可以说int id = Label4.Text但他不知道Label4。我的问题是如何获得这个值?我需要主键从我的数据网格删除行。任何帮助是值得欢迎的,先谢谢你。如何从datagridview中的标签中获取价值C#

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" Width="1000px" HorizontalAlign="Center"> 
 
      <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
 
      <Columns> 
 
       <asp:TemplateField HeaderText="IDAfspraken"> 
 
        <ItemTemplate> 
 
         <asp:Label ID="Label4" runat="server" Text='<%# Eval("IDAfspraken") %>'></asp:Label> 
 
        </ItemTemplate> 
 
       </asp:TemplateField> 
 
       <asp:TemplateField HeaderText="Afspraak"> 
 
        <ItemTemplate> 
 
         <asp:Label ID="Label1" runat="server" Text='<%# Eval("Afspraak") %>'></asp:Label> 
 
        </ItemTemplate> 
 
       </asp:TemplateField> 
 
       <asp:TemplateField HeaderText="Uitleg"> 
 
        <ItemTemplate> 
 
         <asp:Label ID="Label2" runat="server" Text='<%# Eval("Uitleg") %>'></asp:Label> 
 
        </ItemTemplate> 
 
       </asp:TemplateField> 
 
       <asp:TemplateField HeaderText="Categorie"> 
 
        <ItemTemplate> 
 
         <asp:Label ID="Label3" runat="server" Text='<%# Eval("IDCategorieën") %>'></asp:Label> 
 
        </ItemTemplate> 
 
       </asp:TemplateField> 
 
       <asp:TemplateField HeaderText="Verwijderen"> 
 
        <ItemTemplate> 
 
         <asp:Button ID="Button2" runat="server" Text="Verwijder" ForeColor="Red" Font-Bold="true" OnClick="Button2_Click"/> 
 
        </ItemTemplate> 
 
       </asp:TemplateField> 
 
      </Columns> 
 
      <EditRowStyle BackColor="#999999" /> 
 
      <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
 
      <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
 
      <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
 
      <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
 
      <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
 
      <SortedAscendingCellStyle BackColor="#E9E7E2" /> 
 
      <SortedAscendingHeaderStyle BackColor="#506C8C" /> 
 
      <SortedDescendingCellStyle BackColor="#FFFDF8" /> 
 
      <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> 
 
     </asp:GridView>

回答

0

试试这个,

GridViewRow row = (GridViewRow)(((Control)sender).NamingContainer); 
int index = row.RowIndex; 
Label lbltext= (Label)GridView1.Rows[index].FindControl("Label4"); 
string s= lbltext.Text; 
+0

嗨,它不承认“HistoryGrid” –

+0

对不起对不起....更新了我的答案在此情况下,你想要得到的标签值 – user7415073

+0

? – user7415073

0

DataGridView中包含一个名为DataKeyNames财产,DataKeyNames属性设置为这个目的,你必须通过它设置它的价值到gridview。

0

我得到这个工作:

_controller = new Controller(); 

     string id=""; 

     foreach (GridViewRow row in GridView1.Rows) 
     { 
      id = ((Label)row.FindControl("Label4")).Text; 

     } 

     _controller.VerwijderRecordTblAfspraken(Convert.ToInt32(id));