首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

问一个 在datalist下判断表中字段的有关问题

2011-12-22 
问一个 在datalist下判断表中字段的问题是这样,我表中有两个字段shop_name,urlshop_name:商店名称url:商店

问一个 在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);


this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
HyperLink link = e.Item.FindControl( "HyperLink1 ") as HyperLink;
if(link != null)
{
DataRowView dr = e.Item.DataItem as DataRowView;
if(dr != null)
{
string url = dr[ "sj_url "].ToString();
link.NavigateUrl = url;
link.Text = dr[ "sj_name "].ToString();

if (url != " " && url.Trim().Substring(0,4)== "http ")
{
//zhi = " Enabled=true ";
link.Enabled = true;
}
else
{
//zhi = " Enabled=true ";
link.Enabled = false;
}
}
}
}
}
}
}

热点排行