2011-08-20 36 views
7

我在ASP.NET中的C#中有一個用戶控件。此用戶控件的方法代碼隱藏定義如下:ASP.Net - 從包含數據綁定的標記調用方法

protected string GetGreeting(string name) 
{ 
    if (String.IsNullOrEmpty(name)) 
    { 
    return "Hello"; 
    } 
    else 
    { 
    return "Hello " + name; 
    } 
} 

我的標記如下所示:

<asp:Repeater ID="listRepeater" ClientIDMode="Static" runat="server" OnLoad="listRepeater_Load"> 
    <HeaderTemplate> 
     <table id="listTable" style="width:100%;"> 
      <thead><tr> 
       <th>Greeting</th> 
       <th>Actions</th> 
      </tr></thead> 
      <tbody>  
    </HeaderTemplate> 

    <ItemTemplate> 
      <tr> 
       <td><%# GetGreeting("FullName")%></td> 
       <td><a href='#'>view info</a></td> 
      </tr> 
    </ItemTemplate> 

    <FooterTemplate> 
      </tbody> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 

如何記錄的全名屬性綁定在我數據源?現在,我一直在看「Hello FullName」。我想看到像「你好約翰史密斯」這樣的東西。我究竟做錯了什麼?

謝謝!

回答

9

在您的.aspx中,您打電話給GetGreeting("FullName")。從字面上通過"FullName"

嘗試

GetGreeting(Eval("FullName").ToString()) 
7

下面應該工作:

<%# GetGreeting(DataBinder.Eval(Container.DataItem, "FullName").ToString()) %> 

或較短的形式:

<%# GetGreeting(Eval("FullName").ToString()) %> 
相關問題