大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
学习控件,往往需要知道控件所拥有的事件,比如说DataList控件吧,以前没有用过,但凭着对其它控件(如:Dropdownlist)的认知,想当然就知道只要给数据源绑定数据就OK了。那样控件应该就能显示数据了,虽然这样的想法不无道理,但有时候总有例外,比如Component的combobox,除了要绑定数据源,还要先在绑定前指定文本域名与值域名的属性值,方可显示。
查找了MSDN的相关说明如下:
地址:http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.datalist.itemdatabound(VS.80).aspx
当项被数据绑定到 DataList 控件时发生。
命名空间:System.Web.UI.WebControls
程序集:System.Web(在 system.web.dll 中)
实例:
<html>
<mce:script runat=”server”><!–
ICollection CreateDataSource()
{
// Create sample data for the DataList control.
DataTable dt = new DataTable();
DataRow dr;
// Define the columns of the table.
dt.Columns.Add(new DataColumn(“IntegerValue”, typeof(Int32)));
dt.Columns.Add(new DataColumn(“StringValue”, typeof(String)));
dt.Columns.Add(new DataColumn(“CurrencyValue”, typeof(double)));
// Populate the table with sample values.
for (int i = 0; i < 9; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = “Description for item ” + i.ToString();
dr[2] = 1.23 * (i + 1);
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
void Page_Load(Object sender, EventArgs e)
{
// Load sample data only once, when the page is first loaded.
if (!IsPostBack)
{
ItemsList.DataSource = CreateDataSource();
ItemsList.DataBind();
}
}
void Item_Bound(Object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
// Retrieve the Label control in the current DataListItem.
Label PriceLabel = (Label)e.Item.FindControl(“PriceLabel”);
// Retrieve the text of the CurrencyColumn from the DataListItem
// and convert the value to a Double.
Double Price = Convert.ToDouble(
((DataRowView)e.Item.DataItem).Row.ItemArray[2].ToString());
// Format the value as currency and redisplay it in the DataList.
PriceLabel.Text = Price.ToString(“c”);
}
}
// –></mce:script>
<body>
<form runat=server>
<h3>DataList ItemDataBound Example</h3>
<asp:DataList id=”ItemsList”
BorderColor=”black”
CellPadding=”5″
CellSpacing=”5″
RepeatDirection=”Vertical”
RepeatLayout=”Table”
RepeatColumns=”3″
ShowBorder=”True”
OnItemDataBound=”Item_Bound”
runat=”server”>
<HeaderStyle BackColor=”#aaaadd”>
</HeaderStyle>
<AlternatingItemStyle BackColor=”Gainsboro”>
</AlternatingItemStyle>
<HeaderTemplate>
List of items
</HeaderTemplate>
<ItemTemplate>
Description: <br>
<%# DataBinder.Eval(Container.DataItem, “StringValue”) %>
<br>
Price:
<asp:Label id=”PriceLabel”
runat=”server”/>
</ItemTemplate>
</asp:DataList>
</form>
</body>
</html>
MSDN网站里的实例代码有两个,我这里就呈上一个好了,想知道得更多的朋友,可以到上面的地址链接里去查阅。
备注:
当项被数据绑定到 DataList 控件后,将引发 ItemDataBound 事件。此事件为您提供了在客户端显示数据项之前访问该数据项的最后机会。当引发此事件后,该数据项将被设为空,并且不再可用。(这里也就是说数据绑定的方法DataBind()方法先执行,然后在DataBind()方法里引发ItemDataBound 事件,所以我们可以在ItemDataBound 事件里面,给DataList模板里面的控件设值)。
数据绑定控件的ItemDataBound事件中怎么得到数据库字段的值
(1) string acces = DataBinder.Eval(e.Item.DataItem,”字段”).ToString();
或者
(2)string acces = ((DataRowView)e.Item.DataItem)[“字段”].ToString();
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182522.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...