2016-09-29 31 views
1

我有一個GridView綁定了一些來自數據庫的數據,並且在ItemTemplate中有一個標籤,在EditItemTemplate中有一個標籤,它們在同一個TemplateField中。在GridView中,某些用戶在某個字段中沒有數據,如果我想爲這些用戶插入一個數據,我需要首先查找GirdView標籤,並在更新時更改edittextbox,我可以比較它們的值,例如edittextbox值不等於labeldata值然後插入, 但我無法找到rowupdating或gridview的數據綁定時標籤的值如何在gridview上的itemtemplate中找到標籤C#ASP.NET

我該怎麼辦?

我有嘗試

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     int rowCount = GridView1.Rows.Count; 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      if (rowCount >= 1) 
      { 
       Label lbDA_TEL_HK_NO = ((Label)e.Row.FindControl("lblKM_TEL")); 
       Session["DA_TEL_HK_NO"] = lbDA_TEL_HK_NO.Text; 
      } 
     } 
    } 

它可以找到所有的gridview的數據,但不是我選擇

PS:我是新手,請幫我

<asp:TemplateField ItemStyle-Width = "150px" HeaderText = "香港內線"> 
<ItemTemplate> 
    <asp:Label ID="lblHK_TEL" runat="server" 
      Text='<%# Eval("[DA_TEL_HK_NO]")%>'></asp:Label> 
</ItemTemplate> 
<EditItemTemplate> 
    <asp:TextBox ID="txtHK_TEL" runat="server" onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" MaxLength="3" 
     Text='<%# Eval("[DA_TEL_HK_NO]")%>'></asp:TextBox> 
</EditItemTemplate> 

+0

你能證明你的ASPX標記 – Webruster

回答

0

您可以嘗試如下所示讀取網格視圖中的所有行:

for (var i = 0; i < GridView1.Rows.Count; i++) 
{ 
    var label = GridView1.Rows[i].FindControl("lblKM_TEL") as Label; 

    if (label != null) 
    { 
     // Manipulate label control 
    } 
} 

或者你可以從所選行獲取標籤:

var label = GridView1.SelectedRow.FindControl("lblKM_TEL") as Label; 

if (label != null) 
{ 
    // Manipulate label control 
} 
+0

我會嘗試,但我想知道我應該把這些代碼進入? – Woody

+0

您的問題的標題是關於從網格視圖的行讀取控件,如果我理解我們的評論,您真正的問題是「如何從網格視圖編輯項目模板中獲取修改的值」,是嗎? –

+0

是我想從項目模板中獲取值但不能編輯項目模板, – Woody

0

從你的ASPX標記您使用了錯誤的標籤ID。

你需要喲使用這個標籤ID lblHK_TEL

您的代碼如下修改後如下

Label lbDA_TEL_HK_NO = ((Label)e.Row.FindControl("lblHK_TEL")); 
+0

我只是複製一次我的標籤,例如 – Woody

+0

,所以我沒有錯誤的標籤ID問題 – Woody

相關問題