我有一个 asp:hyperlink 控件作为 gridview 模板的一部分。aspx页面中的代码如下:
asp:HyperLink runat="server" ID="lnkEdit" ToolTip="Edit article" NavigateUrl='<%# GetUrl(Eval("ID").ToString(), Eval("CategoryID").ToString()) %>' ImageUrl="~/Images/Edit.gif"
NavigateUrl 值是从代码隐藏方法 GetUrl(string, string) 中获得的。该代码工作正常,如下所示:
protected string GetUrl(string id, string categoryID)
{
var CategoryID = string.Empty;
if (!String.IsNullOrEmpty(Request.QueryString["CatID"]))
{
CategoryID = Request.QueryString["CatID"].ToString();
}
else if (!String.IsNullOrEmpty(categoryID))
{
CategoryID = categoryID;
}
return "~/TBSArticles/WriteOrEditArticle.aspx?ID=" + id + "&CatID=" + CategoryID;
}
我想通过在 aspx 页面中使用三元运算符来替换方法背后的代码。我尝试了类似下面的方法,但没有奏效:
asp:HyperLink runat="server" ID="lnkEdit" ToolTip="Edit article" NavigateUrl='<%# "~/TBSArticles/WriteOrEditArticle.aspx?ID=" + Eval("ID") + "&CatID=" + Eval(this.Request.QueryString["CatID"].ToString()) != ""? this.Request.QueryString["CatID"] : Eval("CategoryID")) %>' ImageUrl="~/Images/Edit.gif"