2012-01-03 109 views
1

ASP.NET使用C#; .net3.5如何爲HeaderTemplate的標籤控件設置文本值

我想爲此標籤lblSkill1控件設置一些值。我無法訪問Eval函數中的Skill1

對於lblSkill1控件,我無法爲'<%# Eval("Skill1") %>'設置一些文本值。

HTML標記

    <HeaderTemplate> 
          <table cellpadding="0" cellspacing="0" style="padding-left: 0px; padding-right: 0px; 
           margin-left: 0px"> 
            <tr> 
            <td> 
             &#160;&#160; 
            </td> 
           </tr> 
           <tr> 
            <td align="center"> 
             <asp:Label ID="lblSkill1" runat="server" Text='<%# Eval("Skill1") %>' /> 
            </td> 
           </tr> 
           </table> 
         </HeaderTemplate> 

我怎麼可以在Skill1的地方設置一個值 '的Java' 正如我上面說的嗎?

回答

3

在ItemDataBound事件中,您可以找到控件並在您的代碼後面的文件中設置值,我推測您使用了Repeater。

protected void MyControl_ItemDataBound(Object Sender, RepeaterItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.Header) 
     { 
      var label = (Label)e.Item.FindControl("lblSkill1"); 

      if (label != null) 
       label.Text = "Text you want to set"; 
     } 
    } 

對於GridView。

protected void MyControl_RowDataBound(Object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.Header) 
     { 
      var label = (Label)e.Row.FindControl("lblSkill1"); 

      if (label != null) 
       label.Text = "Text you want to set"; 
     } 
    } 
+0

我沒有使用Repeater控制。我正在使用GridView。 – venkat 2012-01-03 11:04:50

0

標題是用於整個中繼器,而項目模板是針對每一行。 由於eval函數用於當前數據項,所以不能在標題模板中使用EVAL函數。

+0

不清楚你的答案。我沒有使用Repeater控制。我正在使用GridView – venkat 2012-01-03 11:04:12

0

由於當前沒有可用的綁定上下文,因此無法在頭模板中使用數據綁定表達式。對於項目模板,數據源中的每個項目將充當數據項目,因此綁定表達式可以工作,但對於標題模板不起作用。

假設您的數據源中有5行 - 您期望Eval("Skill1")可以解決 - 針對哪個項目/行,您希望解決哪個項目/行?如果您只是想通過使用邏輯後面的代碼動態設置文本,則使用<%=或使用ItemDataBound事件。例如,

... 
    <tr> 
     <td align="center"> 
     <span><%= GetLabelText() %></span>   
     </td> 
    </tr> 
    </table> 
</HeaderTemplate> 

GetLableText其中將在代碼被保護的或公共的方法背後的類,將提供所需要的值。

請注意,我使用相關的html標記而不是服務器控件,因爲<%=在服務器控件屬性中不起作用。另一方面,如果您選擇使用數據綁定事件,則必須使用用戶服務器控制,並使用FindControl調用找到它。

+0

我沒有使用Repeater控件。我正在使用GridView。 – venkat 2012-01-03 11:05:12

相關問題