前台:
<asp:DataList ID="dlModule" runat="server" Width="100%"  RepeatColumns="1" DataKeyField="ProjectId" RepeatDirection="Horizontal" OnItemDataBound="dlModule_ItemDataBound" >
                           <AlternatingItemStyle  />
                        <HeaderStyle  />
                            <ItemTemplate>
                                <table >
                                    <tr >
                                        <td align="right" style="text-align:right; vertical-align:top">
                                          <%# DataBinder.Eval(Container.DataItem,"Name") %> </td>
                                          <td align="left"> 
                                          <asp:DataList ID="dlFunction" runat="server"   RepeatColumns="1" DataKeyField="Uid" RepeatDirection="Horizontal" >
                                           <ItemTemplate>
                                           --<asp:Label ID="reousrce" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Name") %>'></asp:Label>
                                          <asp:LinkButton  ID="edit" Text="编辑" runat="server">  </asp:LinkButton>
                                          <asp:LinkButton CommandArgument='<%# Eval("Uid") %>' CommandName="delete"  ID="delete"  Text="删除" runat="server"></asp:LinkButton>
                                           </ItemTemplate>
                                           </asp:DataList>
                                           </td>
                                           
                                    </tr>
                                </table>
                            </ItemTemplate>
                            <AlternatingItemTemplate>
                                 <table  >
                                    <tr >
                                        <td align="right" style="text-align:right; vertical-align:top">
                                          <%# DataBinder.Eval(Container.DataItem,"Name") %> </td>
                                          <td align="left"> <asp:DataList ID="dlFunction" runat="server"   RepeatColumns="1" DataKeyField="Uid" RepeatDirection="Horizontal" >
                                           <ItemTemplate>
                                           --<asp:Label ID="reousrce" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Name") %>'></asp:Label>
                                          <asp:LinkButton ID="edit" Text="编辑" runat="server">  </asp:LinkButton>
                                   <asp:LinkButton ID="delete" CommandArgument='<%# Eval("Uid") %>' CommandName="delete" Text="删除" runat="server"></asp:LinkButton>
                                           </ItemTemplate>
                                           </asp:DataList>
                                           </td>   
                                    </tr>
                                </table>
                            </AlternatingItemTemplate>
                        </asp:DataList>
后台:
protected void dlModule_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        Control container = e.Item;
        ListItemType itemType = e.Item.ItemType;        if (itemType == ListItemType.Item || itemType == ListItemType.AlternatingItem)
        {
            Project p = e.Item.DataItem as Project;
          
            if (p == null)
            {
                return;
            }            DataList dlFunc = (DataList)container.FindControl("dlFunction");// 得到内层的dataList            if (null != dlFunc)
            {
                int intModuleID =p.ProjectId;                dlFunc.DataSource = ProjectDAL.GetResourceByUid(intModuleID);
                dlFunc.DataBind();
            }
        }
    }现在这个dataList在内层,怎么执行删除命令啊?那位高手做过啊?

解决方案 »

  1.   

    另一个页面执行删除也行啊
    <asp:TemplateField HeaderText ="Del">
                        <ItemTemplate >        
                            <asp:HyperLink ID="HyperLink_drop" runat="server" ImageUrl ="../images/b_drop.png"  NavigateUrl ='<%# "ConfirmPage.aspx?type=shipper&ID=" +DataBinder.Eval(Container.DataItem,"ID") %>'></asp:HyperLink>
                        </ItemTemplate>
                        <ItemStyle CssClass ="GV_ItemStyle"/>
                        <HeaderStyle  CssClass ="GV_HeaderStyle"/>
                   </asp:TemplateField> 
    找到GV的删除事件,内写也行啊: 
        protected void gdv_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("Del"))
            {
                string[] aArray = e.CommandArgument.ToString().Split(',');
                int expensesid = Convert.ToInt32(aArray[0]);
                string categorylistdesc = aArray[1].ToString();
                DonationDataAccess.DonationExpensesDAO expdao = new DonationDataAccess.DonationExpensesDAO();
                expdao.Deleterecord(expensesid);
            }
        }
      

  2.   

    <asp:LinkButton CommandArgument='<%# Eval("Uid") %>' CommandName="delete"  ID="delete"  Text="删除" runat="server" OnClick="LinkButton1_Click"></asp:LinkButton> protected void LinkButton1_Click(object sender, EventArgs e)
            {
                LinkButton LinkButton1 = (LinkButton)sender;
                //删除
                delete(LinkButton1.CommandArgument);
            }
    编辑也差不多,直接在cs加个事件就可以。
      

  3.   

    这个dataList在另一个dataList里面啊,我怎么写RowCommand事件啊。
      

  4.   

    因为编辑和删除按钮在里层的dataList的项里,他们在页面上时不显示的,怎么写  LinkButton1_Click事件啊?
      

  5.   

    你在第二个datalist里加上按钮用作删除,用FindControl先去到第二个datalist,在第二个datalist里继续FindControl去按钮
      

  6.   

    找到删除按钮容易,怎么执行删除事件啊,应该写在rowCommand里的,改怎么实现啊?
      

  7.   


    直接手工写个事件上去,把这个事件给那个linkbutton就可以了。
      

  8.   

    其实很简单,你给内层的DataList 指定一个事件或者 给 DataList 中的linkbutton 指定事件就可以和没有嵌套一样做处理了
      

  9.   

    直接设置E.comandname
    E.comandArgument