国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net 2.0中gridview里嵌套dropdownlist

2024-07-10 13:11:01
字體:
來源:轉載
供稿:網友

在asp.net 2.0中,在一個gridview里,可以嵌套進一個dropdownlist,這是十分容易的事情,而這里講的是,
在每個dropdownlist里,都綁定的是不同的內容,比如在northwind數據庫中,可以用gridview顯示出
每個category類別,同時每一行的category類別里可以已dropdonwlist下拉框的形式,列出該分類下的所有
產品.下面介紹實現的方法

首先是頁面部分的代碼
 <asp:gridview id="gridview1" runat="server" autogeneratecolumns="false" onrowdatabound="gridview1_rowdatabound">
<columns>

<asp:boundfield datafield="categoryid" headertext="categoryid" />

<asp:boundfield datafield="categoryname" headertext="category name" />

<asp:templatefield headertext="products">

<itemtemplate>

<asp:dropdownlist id="dropdownlist1" runat="server">

</asp:dropdownlist>

</itemtemplate>

</asp:templatefield>

</columns>

</asp:gridview>

在codebehind部分,
 protected void page_load(object sender, eventargs e)
    {
        if (!page.ispostback)
        {

            // this is because table[1] contains categories

            gridview1.datasource = getdataset().tables[1];

            gridview1.databind();

        }


    }
    private dataset getdataset()
    {

        string query = @"select p.categoryid,p.productid, p.productname from products p

select c.categoryid,c.categoryname from categories c";

        string connectionstring = "server=localhost;database=northwind;user id=sa;password=123456";

        sqlconnection myconnection = new sqlconnection(connectionstring);

        sqldataadapter ad = new sqldataadapter(query, myconnection);

        dataset ds = new dataset();

        ad.fill(ds);

        return ds;

    }
    在上面的代碼中,首先我們通過典型的dataset返回,綁定到gridview上去,注意這里sql語句里有兩句,第一句是返回產品,第二句是返回所有的類別category,而在綁定gridview時,我們用
  gridview1.datasource = getdataset().tables[1];,將第一個table表里的category記錄綁定到gridview里去,接下來,我們要處理模版列中的dropdownlist了,這個可以在row_databound事件中寫入代碼,如下
   protected void gridview1_rowdatabound(object sender, gridviewroweventargs e)
    {
        datatable mytable = new datatable();

        datacolumn productidcolumn = new datacolumn("productid");

        datacolumn productnamecolumn = new datacolumn("productname");

        mytable.columns.add(productidcolumn);

        mytable.columns.add(productnamecolumn);

        dataset ds = new dataset();

        ds = getdataset();

        int categoryid = 0;

        string expression = string.empty;

        if (e.row.rowtype == datacontrolrowtype.datarow)
        {

            categoryid = int32.parse(e.row.cells[0].text);

            expression = "categoryid = " + categoryid;

            dropdownlist ddl = (dropdownlist)e.row.findcontrol("dropdownlist1");

            datarow[] rows = ds.tables[0].select(expression);

 

            foreach (datarow row in rows)
            {

                datarow newrow = mytable.newrow();

                newrow["productid"] = row["productid"];

                newrow["productname"] = row["productname"];

                mytable.rows.add(newrow);

            }

            ddl.datasource = mytable;

            ddl.datatextfield = "productname";

            ddl.datavaluefield = "productid";

            ddl.databind();

        }

  }
  這里的原理大致如下:
首先,我們建立了一個datatable,包含了productid,productname列,然后將其與 gridview綁定,之后再用
 categoryid = int32.parse(e.row.cells[0].text);

            expression = "categoryid = " + categoryid;
構造一個篩選表達式,這里指定為categoryid,然后通過
 dropdownlist ddl = (dropdownlist)e.row.findcontrol("dropdownlist1");
           datarow[] rows = ds.tables[0].select(expression);
  ,找出符合其類別等于某一categoryid的所有產品,這里構造出datarow集合了,最后,使用循環
,將某類別下的產品全部添加到datatable中去,最后將datatable和dropdownlist綁定,就實現功能了

中國最大的web開發資源網站及技術社區,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 碌曲县| 湟源县| 澳门| 四子王旗| 吴堡县| 江城| 大厂| 哈巴河县| 平谷区| 河南省| 定安县| 交城县| 阜宁县| 桦甸市| 沂水县| 突泉县| 台湾省| 云梦县| 高尔夫| 安阳市| 瓦房店市| 丰宁| 廊坊市| 武宁县| 襄樊市| 达拉特旗| 会泽县| 西吉县| 务川| 开原市| 深水埗区| 米泉市| 惠来县| 丰县| 凤山市| 三门县| 湘乡市| 白河县| 海城市| 泰兴市| 开化县|