欢迎光临
我们一直在努力

另外一种DataGrid与Datalist的嵌套–更好的方式-.NET教程,数据库应用

建站超值云服务器,限时71元/月

相对于上一次的使用relation的缺点:
1. 不能限制返回的纪录数;2. 邦定时不方便,甚至不能邦定上;3. 程序简单,但不容易理解。4. 可能对于三层以上的嵌套不容易实现。
这次给出的嵌套方案,使用的itemdatabound事件进行嵌套,实现起来很方便,其容易理解。并且解决了以上四个问题。
以下是主要的代码:
<asp:datalist id=”dlist_class” datakeyfield=”navigatorid”
  backcolor=”#ffffff”  borderwidth=”0px” cellpadding=”1″
  showfooter=”false” showheader=”false”  runat=”server”
  cellspacing=”20″ horizontalalign=”justify”  repeatcolumns=”2″
  repeatdirection=”horizontal” repeatlayout=”table” >
    <itemstyle verticalalign=top></itemstyle>
    <itemtemplate>
     <b><%# databinder.eval(container.dataitem,”navigatorid”) %> @
      <%# databinder.eval(container.dataitem,”nodecaption”) %></b>
     <hr>
     <asp:datagrid id=dg_subclass width=315px runat=server      
     autogeneratecolumns=”false”
     showheader=”false” showfooter=”false” pagesize=”10″ allowpaging=”true”
     pagerstyle-visible=”false” borderwidth=”1″ backcolor=”#ffffff” bordercolor=”#ffffff”
     cellpadding=”0″ cellspacing=”0″ gridlines=horizontal
     onitemdatabound=dg_subclass_itemdatabound>
      <itemstyle height=”14px” backcolor=”#e3f1ff”  cssclass=”gridhover”></itemstyle>
                  
      <columns>
       <asp:boundcolumn datafield =”moduletype” readonly=true >
        <itemstyle width=25 horizontalalign=center ></itemstyle>
       </asp:boundcolumn>     
       
       <asp:boundcolumn datafield=”nodecaption” >
        <itemstyle horizontalalign=left cssclass=”nav”></itemstyle>
       </asp:boundcolumn>
       
       <asp:boundcolumn datafield =”moduletype” readonly=true>
        <itemstyle width=90 horizontalalign=center></itemstyle>
       </asp:boundcolumn>        
      </columns>      
     </asp:datagrid>    
    </itemtemplate>
  </asp:datalist>  

private void dlist_class_itemdatabound(object sender, system.web.ui.webcontrols.datalistitemeventargs e)
  {
   if (e.item.itemtype == listitemtype.item || e.item.itemtype == listitemtype.alternatingitem)
   {
    datagrid dg=(datagrid)e.item.findcontrol(“dg_subclass”);
    string itemindex =this.dlist_class.datakeys[e.item.itemindex].tostring();

    string[] strsqlarray =new string[3]{“select top 10 iorder, ilevel, iparentid, navigatorid, nodecaption,moduleid, moduletype from  navigatornodes where iparentid in ( “, itemindex, “);”};
    string strsql=string.concat(strsqlarray);
    string tablename =”subclass”+itemindex;

    this.dbclass.adapterfill(ds, commandtype.text, strsql, tablename, new oledbparameter[0]);

    dg.itemdatabound += new system.web.ui.webcontrols.datagriditemeventhandler(this.dg_subclass_itemdatabound);

    dg.datasource =ds.tables[tablename].defaultview;
    dg.databind();
   }
  }
====================
更多内容,欢迎访问ms.mblogger.cn/nono

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 另外一种DataGrid与Datalist的嵌套–更好的方式-.NET教程,数据库应用
分享到: 更多 (0)