日期:2014-05-18  浏览次数:20464 次

DataList的绑定问题?????????
我一般是在HTML代码中 <%#   DataBinder.Eval(Container.DataItem, "数据字段 ")%> 来绑定DataList数据的,我想问问我在   后台CS中代码中怎样绑定数据?
        请教!!

------解决方案--------------------
//****在ItemDataBound事件中用

DataBinder.Eval(Container.DataItem, "AA ");


//****但是DataList样式还是要用模版去设置处理哈.
------解决方案--------------------
LogicBusiness.newsTableLB mnewsTableLB = new newsTableLB();
DataTable dt=mnewsTableLB.machining1();
DataList3.DataSource= dt;
DataList3.DataBind();
for ( int i = 0 ;i < dt.Rows.Count; i++ )
{
HyperLink hy1 = (HyperLink)DataList3.Items[i].FindControl( "Hyperlink2 ");
string ss= dt.Rows[i][ "title "].ToString().Trim();
if(ss.Length> =27)
hy1.Text = ss.Substring(0,27);
else
hy1.Text=ss;
hy1.NavigateUrl = "products.aspx?ID= "+dt.Rows[i][ "id "].ToString().Trim();
}
------解决方案--------------------
可以用ItemDataBound去做
------解决方案--------------------
如果在cs文件中写的话,一般写在RowDataBound 事件里
如果在aspx或者ascx文件中没有直接在属性绑定时间,在程序中绑定的话可以在pageload事件或者onprender事件里这样写
DataList1.ItemDataBound += new DataListItemEventHandler(DataList1_ItemDataBound);

然后定义事件

例如。。我在datalist的listitem里放了个hyperlink控件id为 HyperLinkNameOfPortal...

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.DataItem != null)
{
HyperLink hlSite = (HyperLink)e.Item.FindControl( "HyperLinkNameOfPortal ");
string test= Convert.ToString(DataBinder.Eval(e.Item.DataItem, "数据字段 "));
hlSite.Text = test;
hlSite.NavigateUrl = "网址 " }
}


当然也可以放其它的控件