问一个 在datalist下判断表中字段的问题
是这样,我表中有两个字段 shop_name,url
shop_name:商店名称
url:商店网站地址
然后我在前台用 datalist绑定这个表
直接 显示出 shop_name这个字段我是用 Hyperlink 显示的 商店名称
我要实现的功能是
当 url这个字段 没有值的时候 hyperlink 的 Enabled 为false
反之就为 true
也就是说 ,当 商店有网站的时候 可以链接网站,如果没有网站的时候就没有链接
现在我在后台写了一个方法
protected string link_ok(string url)
{
string zhi= " ";
if (url != " " && url.Trim().Substring(0,4)== "http ")
{zhi = " Enabled=true ";}
else
{zhi = " Enabled=true ";}
Response.Write(zhi.ToString());
return zhi;
}
在前台调用
<asp:HyperLink id= "HyperLink1 " runat= "server " NavigateUrl= ' <%#DataBinder.Eval(Container.DataItem, "sj_url ")%> ' Target= "_blank " <%=link_ok( "?????问题所在 ")%> >
<%#DataBinder.Eval(Container.DataItem, "sj_name ")%>
</asp:HyperLink>
我现在的问题 就是 如何 在前台 把url这个字段 做为参数 放到 我的 link_ok方法里啊??
如果这种 方法不行,那还有什么方法可以实现我想要的功能??
谢谢大哥们
------解决方案--------------------这种方法不是很好.
还不如直接用模板列
<a <%#GetUrl(DataBinder.Eval(Container.DataItem, "sj_url ").ToString())%>
<%#DataBinder.Eval(Container.DataItem, "sj_name ")%>
</a>
后台函数
如果url正确就返回
href=\ " " + url +\ " "
否则返回空
------解决方案--------------------using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace WebAppTest
{
/// <summary>
/// WebForm2 的摘要说明。
/// </summary>
public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataList DataList1;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
BindData();
}
}
private void BindData()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn( "sj_url ", typeof(string)));
dt.Columns.Add(new DataColumn( "sj_name ", typeof(string)));
for (int i = 0; i < 9; i++)
{
dr = dt.NewRow();
if(i % 2 != 0)
dr[0] = " ";
else
dr[0] = "http://url ";
dr[1] = "sj_name ";
dt.Rows.Add(dr);
}
this.DataList1.DataSource = new DataView(dt);
this.DataList1.DataBind();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataList1.ItemDataBound += new System.Web.UI.WebControls.DataListItemEventHandler(this.DataList1_ItemDataBound);