在datalist中不使用数据绑定,而在DataList1_ItemDataBound中取得每行数据后在给datalist中的控件赋值? 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 假设在DataList的ItemTemplate里增加了一个:<asp:Label ID="LabelAdded" runat="server" />protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e){ if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DataRowView drv = e.Item.DataItem as DataRowView; Label label = e.Item.FindControl("LabelAdded") as Label; if (Convert.ToDecimal(drv["价格字段名"]) >= 20.0m) { label.Text = "太贵了!"; } else label.Text = "便宜货!"; }} 前台: <asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </ItemTemplate> </asp:DataList>后台: this.DataList1.DataSource = Dt; //DataTable 包含Name字段 this.DataList1.DataBind(); protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e) { if (e.Item.FindControl("Label1") != null) { Label label = (Label)e.Item.FindControl("Label1"); DataRowView dl = (DataRowView)e.Item.DataItem; label.Text = dl["Name"].ToString(); } } 我的意思是如果数据库中的字段"ID"没有邦定到datalist中的某个控件中的话,我怎么取到某一行或者所有行的这个"ID"字段的值? DataList1.DataKeys[e.Item.ItemIndex].ToString(); 前提是<asp:DataList DataKeyField="ProductID" 不行呀,如果name字段事先没有绑定到某个控件中,读出来的值为空!在数据源中有这个select name, ... from table where .... DataKeys能不能有多个字段?如果是多个字段,怎么取值 datalist都没有绑定,DataList1_ItemDataBound中能读到数据?? 可以了,刚才那个字段是空值,谢谢楼上的各位!还有个问题:DataKeys能不能有多个字段? 如果是多个字段,怎么取值 如果你是在ItemDataBound事件处理代码里通过DataRowView drv = (DataRowView)e.Item.DataItem;那么drv["任何一个字段"]都可以访问,无论对应字段在没在ItemTemplate里绑定。 DataKeys能不能有多个字段? 如果是多个字段,怎么取值 和GridView、DetailsView和FormView控件不同,DataList控件的DataKeyField属性中不能使用多个主键列。不要问为什么,它天生就这样! 如何在asp.net中弹出可编辑的窗口? ASP.NET如何保存网页(包括图片和Flash) 代码源视窗内的代码为何会自动连成很长的一行 请教,后台编码里函数是怎样调用的?内附源代码。C# javascript函数的调用 iis7.5 发布网站 连接数据库出错 在线等解决 请教一条oracle语句优化 求一正则表达式 DataSet取值的问题 百度富文本编辑器 上传图片后如何删除图片的问题 RDLC中提示错误:无法显示子报表?今天第三天了,还没搞出来。 GridView-导出Word问题
<asp:Label ID="LabelAdded" runat="server" />protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView drv = e.Item.DataItem as DataRowView; Label label = e.Item.FindControl("LabelAdded") as Label;
if (Convert.ToDecimal(drv["价格字段名"]) >= 20.0m)
{
label.Text = "太贵了!";
}
else
label.Text = "便宜货!";
}
}
前台:
<asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ItemTemplate>
</asp:DataList>
后台:
this.DataList1.DataSource = Dt; //DataTable 包含Name字段
this.DataList1.DataBind(); protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.FindControl("Label1") != null)
{
Label label = (Label)e.Item.FindControl("Label1");
DataRowView dl = (DataRowView)e.Item.DataItem;
label.Text = dl["Name"].ToString();
}
}
我的意思是如果数据库中的字段"ID"没有邦定到datalist中的某个控件中的话,我怎么取到某一行或者所有行的这个"ID"字段的值?
不行呀,如果name字段事先没有绑定到某个控件中,读出来的值为空!
在数据源中有这个select name, ... from table where ....
如果是多个字段,怎么取值
还有个问题:
DataKeys能不能有多个字段?
如果是多个字段,怎么取值
DataRowView drv = (DataRowView)e.Item.DataItem;
那么drv["任何一个字段"]都可以访问,无论对应字段在没在ItemTemplate里绑定。
如果是多个字段,怎么取值