AppendDataBoundItems="true" 与 AppendDataBoundItems="false" 有什么区别没有呀,能不能举例
获取或设置一个值,该值指示是否在绑定数据之前清除列表项。
属性值
如果不在绑定数据之前清除列表项,则为 true;如果在执行数据绑定之前清除项集合,则为 false。默认为 false。
备注
AppendDataBoundItems 属性使您可以在执行数据绑定之前将项添加到 ListControl 对象中。执行数据绑定之后,项集合中包含数据源中的项以及以前添加的项。
此属性的值存储在视图状态中。
无法通过主题或样式表主题来设置此属性。有关更多信息,请参见ThemeableAttribute和ASP.NET 主题和外观概述。
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<html>
<script language="C#" runat="server">
ICollection CreateDataSource() {
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));
dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
for (int i = 0; i < 9; i++) {
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = DateTime.Now;
dr[3] = (i % 2 != 0) ? true : false;
dr[4] = 1.23 * (i+1);
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
void Page_Load(Object sender, EventArgs e) {
if (!IsPostBack) {
RadioButtonList1.Items.Add("Non-databound item.");
RadioButtonList1.AppendDataBoundItems = true;
RadioButtonList1.DataSource = CreateDataSource();
RadioButtonList1.DataTextField="StringValue";
RadioButtonList1.DataValueField="CurrencyValue";
RadioButtonList1.DataBind();
}
}
void Index_Changed(Object sender, EventArgs e) {
Label1.Text = "You selected " + RadioButtonList1.SelectedItem.Text +
" with a value of $" + RadioButtonList1.SelectedItem.Value +
".";
}
</script>
<body>
<form id="Form1" runat=server>
<asp:RadioButtonList id="RadioButtonList1"
OnSelectedIndexChanged="Index_Changed"
AutoPostBack="true"
runat="server"/>
<br>
<asp:Label id="Label1" runat="server"/>
</form>
</body>
</html>
上述描述及代码示例来自微软msdn
AppendDataBoundItems="true"是DropDownList是否清除已包含的项。
AppendDataBoundItems="false"会一直往DropDownList里面追加。