2017-04-25 36 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));