欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

深入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()));
}

上一篇:

下一篇: