深入DropDownList用法的一些学习总结分析
程序员文章站
2023-12-19 14:27:34
首先绑定数据。现收集dropdownlist 的三种 databind 方法如下:基础数据绑定:用listitem直接枚举出来,适用于不需要修改的类型列表。复制代码 代码如...
首先绑定数据。
现收集dropdownlist 的三种 databind 方法如下:
基础数据绑定:用listitem直接枚举出来,适用于不需要修改的类型列表。
<asp:dropdownlist id="dropdownlist1" runat="server">
<asp:listitem value="设计家园">设计家园</asp:listitem>
<asp:listitem value="网页设计">网页设计</asp:listitem>
<asp:listitem value="网络编程">网络编程</asp:listitem>
<asp:listitem value="酷站欣赏">酷站欣赏</asp:listitem>
</asp:dropdownlist>
动态绑定方法一:动态绑定数据库中的字段。
sqlconnection conn = system.configuration.configurationsettings.appsettings["sqlconnection"].tostring();
string strsql = "select * from companytype";
sqldataadapter ada = new sqldataadapter(strsql, conn);
dataset ds = new dataset();
ada.fill(ds, "companytype");
dropdownlist1.datasource = ds.tables["companytype"].defaultview;
dropdownlist1.datavaluefield = ds.tables["companytype"].columns[1].columnname;
dropdownlist1.datatextfield = ds.tables["companytype"].columns[1].columnname;
dropdownlist1.databind();
ds.dispose();
//其中datavaluefield属性是控件的一个关键属性,cs页面通过value值获取;
//而datatextfield是显示在视图页面的文本。
动态绑定方法二:利用dropdownlist.items.add方法。
protected void page_load(object sender, eventargs e)
{
if (!ispostback)
{
sqlconnection conn = system.configuration.configurationsettings.appsettings["sqlconnection"].tostring();
try
{
conn.open();
this.dropdownlist1.items.add("");
string strsql = "select companytype from companytype";
sqlcommand com = new sqlcommand(strsql, conn);
sqldatareader dr = com.executereader();
while (dr.read())
{
this.dropdownlist1.items.add(dr["companytype"].tostring());
//或者
//dropdownlist_name.items.add(new listitem(text, value));
}
}
catch (exception ex)
{
response.write("<scirpt>alert('" + ex.message.tostring() + "')</script>");
}
finally
{
conn.close();
}
}
}
绑定之后,我们来实现dropdownlist 的联动功能。
要实现联机变动,就要用到selectedindexchange 事件,记得要把autopostback 的值设为 "true"
下面是一个最简单的联动效果。
protected void dropdownlist1_selectedindexchanged(object sender, eventargs e)
{
dropdownlist2.items.clear();
if (dropdownlist1.items[0].selected)
{
dropdownlist2.items.add("陆小凤");
dropdownlist2.items.add("楚留香");
}
else
{
dropdownlist2.items.add("杨过");
dropdownlist2.items.add("小龙女");
}
}
如果要实现无刷新联动,自己去找度娘。网上有很多很好的文档案例。
同理,如要下级也自动获取对于的数据字段。
string id=dropdownlist1.selectedvalue;
可以然后根据此"id“去数据库中读出相应部分的数据
最后,是一个不错的通过dataset逐行读数据的例子,业务系统“计划中心”的下拉列表.
dataset ds = null;
string sqlstr = null;
sqlserver sqlserverdb = new sqlserver();
sqlstr = "select name,account from qdvc_usersimple";
ds = sqlserverdb.datasetrun(null, sqlstr, "qdvc_usersimple");
foreach (datarow datarow in ds.tables[0].rows)
{
object[] itemarray = datarow.itemarray; //获取datarow的所有的单元格里的数据array
// itemarray[0].tostring()是"name",itemarray[1].tostring()是"account"
dropdownlist_name.items.add(new listitem(itemarray[0].tostring(), itemarray[1].tostring()));
}
现收集dropdownlist 的三种 databind 方法如下:
基础数据绑定:用listitem直接枚举出来,适用于不需要修改的类型列表。
复制代码 代码如下:
<asp:dropdownlist id="dropdownlist1" runat="server">
<asp:listitem value="设计家园">设计家园</asp:listitem>
<asp:listitem value="网页设计">网页设计</asp:listitem>
<asp:listitem value="网络编程">网络编程</asp:listitem>
<asp:listitem value="酷站欣赏">酷站欣赏</asp:listitem>
</asp:dropdownlist>
动态绑定方法一:动态绑定数据库中的字段。
复制代码 代码如下:
sqlconnection conn = system.configuration.configurationsettings.appsettings["sqlconnection"].tostring();
string strsql = "select * from companytype";
sqldataadapter ada = new sqldataadapter(strsql, conn);
dataset ds = new dataset();
ada.fill(ds, "companytype");
dropdownlist1.datasource = ds.tables["companytype"].defaultview;
dropdownlist1.datavaluefield = ds.tables["companytype"].columns[1].columnname;
dropdownlist1.datatextfield = ds.tables["companytype"].columns[1].columnname;
dropdownlist1.databind();
ds.dispose();
//其中datavaluefield属性是控件的一个关键属性,cs页面通过value值获取;
//而datatextfield是显示在视图页面的文本。
动态绑定方法二:利用dropdownlist.items.add方法。
复制代码 代码如下:
protected void page_load(object sender, eventargs e)
{
if (!ispostback)
{
sqlconnection conn = system.configuration.configurationsettings.appsettings["sqlconnection"].tostring();
try
{
conn.open();
this.dropdownlist1.items.add("");
string strsql = "select companytype from companytype";
sqlcommand com = new sqlcommand(strsql, conn);
sqldatareader dr = com.executereader();
while (dr.read())
{
this.dropdownlist1.items.add(dr["companytype"].tostring());
//或者
//dropdownlist_name.items.add(new listitem(text, value));
}
}
catch (exception ex)
{
response.write("<scirpt>alert('" + ex.message.tostring() + "')</script>");
}
finally
{
conn.close();
}
}
}
绑定之后,我们来实现dropdownlist 的联动功能。
要实现联机变动,就要用到selectedindexchange 事件,记得要把autopostback 的值设为 "true"
下面是一个最简单的联动效果。
复制代码 代码如下:
protected void dropdownlist1_selectedindexchanged(object sender, eventargs e)
{
dropdownlist2.items.clear();
if (dropdownlist1.items[0].selected)
{
dropdownlist2.items.add("陆小凤");
dropdownlist2.items.add("楚留香");
}
else
{
dropdownlist2.items.add("杨过");
dropdownlist2.items.add("小龙女");
}
}
如果要实现无刷新联动,自己去找度娘。网上有很多很好的文档案例。
同理,如要下级也自动获取对于的数据字段。
string id=dropdownlist1.selectedvalue;
可以然后根据此"id“去数据库中读出相应部分的数据
最后,是一个不错的通过dataset逐行读数据的例子,业务系统“计划中心”的下拉列表.
复制代码 代码如下:
dataset ds = null;
string sqlstr = null;
sqlserver sqlserverdb = new sqlserver();
sqlstr = "select name,account from qdvc_usersimple";
ds = sqlserverdb.datasetrun(null, sqlstr, "qdvc_usersimple");
foreach (datarow datarow in ds.tables[0].rows)
{
object[] itemarray = datarow.itemarray; //获取datarow的所有的单元格里的数据array
// itemarray[0].tostring()是"name",itemarray[1].tostring()是"account"
dropdownlist_name.items.add(new listitem(itemarray[0].tostring(), itemarray[1].tostring()));
}