0

我有以下 ASPX 代码:

<ItemTemplate>
    <asp:HyperLink ID="BRANCH_NAME" runat="server" 
          NavigateUrl='<%# "mailto:"+Eval("OWNERS_EMAIL") %>' 
          Text='<%# Eval("BRANCH_NAME") %>' 
          ToolTip='<%# GetBranchAddress() %> '> 
    </asp:HyperLink>
</ItemTemplate>

后面代码中的函数:

protected string GetBranchAddress(DataRow row)
{
    return "<span style=\"text-decoration:underline;\">"+ 
               row["BRANCH_NAME"].ToString().Trim() + "</span><br />" + 
               row["OWNERS_FIRST_NAME"].ToString().Trim() + " " +
               row["OWNERS_LAST_NAME"].ToString().Trim() + "<br />" + 
               row["OWNERS_EMAIL"].ToString().Trim() + "<br />" + 
               row["OWNERS_OFFICE_PHONE"].ToString().Trim() + "<br />" + 
               row["OWNERS_FAX_PHONE"].ToString().Trim();

}

我得到的错误是:

方法“GetBranchAddress”没有重载采用“0”参数

如何访问row我的 ASP GridView 以便我可以将它传递给我的函数?

谢谢。

4

2 回答 2

2

与其尝试将整个传递DataRow到函数中,不如利用 datakeys 指定要显示的字段,并传入行索引。

<asp:GridView ID="GridView1" runat="server" DataKeyNames="BRANCH_NAME, StreetAddress" ...>

中的代码ItemTemplate如下所示:

<ItemTemplate>
    <asp:HyperLink ID="BRANCH_NAME" runat="server" 
          NavigateUrl='<%# "mailto:"+Eval("OWNERS_EMAIL") %>' 
          Text='<%# Eval("BRANCH_NAME") %>' 
          ToolTip='<%# GetBranchAddress(Container.DisplayIndex) %> '> 
    </asp:HyperLink>
</ItemTemplate>

在您的函数中,您可以像这样访问 datakey 值:

protected string GetBranchAddress(int rowIndex)
{
    return GridView1.DataKeys[rowIndex]["BRANCH_NAME"].ToString();
}
于 2013-02-11T17:53:07.640 回答
0

在您的标记中,您没有将任何参数传递给 GetBranchAddress,这就是您收到错误的原因。您应该将“this”传递给方法,其中“this”是当前操作的对象(DataRow)。例如,

ToolTip='<%# GetBranchAddress(this) %> '
于 2013-02-11T17:44:31.160 回答