嵌套Repeater问题
<asp:Repeater ID=repParamList runat=server OnItemDataBound="repParamList_ItemDataBound">
<ItemTemplate>
    <asp:Panel ID=panStep2 runat=server Visible=false>
        <asp:Repeater ID=repChild runat=server >
<HeaderTemplate>
<asp:Label ID='lblbigClassname' runat=server></asp:Label>
</HeaderTemplate>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Name")%>:<asp:TextBox ID='txt'runat=server></asp:TextBox>
<asp:CheckBox ID='chk' runat=server Text='无此选项' />
</ItemTemplate>
<FooterTemplate>
<asp:Button Text="保存,下一步" ID='btnStep2' OnClick=btnStep2_Click runat=server />
</FooterTemplate>
       </asp:Repeater>
    </asp:Panel>
</ItemTemplate>
</asp:Repeater>我现在已经把二个Repeater的数据源都设好了.并显示正确了.
问题一:我如何去得到子Repeater中<ItemTemplate>项中TextBox与CheckBox的值?
问题二:我如何去写Repeater中<FooterTemplate>中Button的单击事件?有很多个button啊?我想实现的效果是:假设父Repeater中有3条记录.子Repeater中也有N条记录.我单击"保存,下一步"的时候把Textbox的各个值写到数据库,然后进行下一步,上一步的Repeater不显示,下一个Repeater显示,依此类推....

解决方案 »

  1.   

    1.循环items,用findcontrol找到控件.2.按纽加上CommandName="a1" 然后在repeater的.ItemCommand事件中做
      

  2.   

    呵呵,这几天我正好也在弄这个破Repeater, 刚才终于搞定了,我嵌套的比你还多,嵌套了三个Repeater,第一个显示项目的标题,第二个显示此项目下的所有题目的标题,第三个显示对应此问题的选项及所占的百分比. 对于你的问题,我也是刚刚学,不敢胡乱出注意.
      

  3.   

    墓白兄.能否再详尽一点.
    按钮加上CommandName="a1" ?
    那btnStep2_Click 这个事件怎么写啊??
    循环items,用findcontrol这些也都得写在按钮的单击事件中啊..且怎样区分是哪一个button呢?
      

  4.   

    按纽放在哪个repeater就在哪个repeater的itemcommand事件中写.
      

  5.   

    如:
    private void Repeater1_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
    {

    if(e.CommandName == "a1")
     {
    ...
    }
    }
      

  6.   

    如:
    private void Repeater1_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
    {if(e.CommandName == "a1")
     {
    ...
    }
    }
    -------------------------
    我循环items和findcontrol然后写入数据库这些都写在这里面吗?
    可是怎么写吗?我每一个子Repeater要插入的数据表不一样啊.怎样区分呢?
      

  7.   

    <ASP:REPEATER ID="repParamList" runat="server" OnItemDataBound="repParamList_ItemDataBound">
    <ITEMTEMPLATE>
     
    <ASP:REPEATER ID="repChild" runat="server" OnItemCommand ="repChild_ItemCommand">
    <HEADERTEMPLATE>
    <ASP:LABEL ID='lblbigClassname' runat="server"></ASP:LABEL>
    </HEADERTEMPLATE>
    <ITEMTEMPLATE>
    <%# DataBinder.Eval(Container.DataItem, "Item")%>
     
    <ASP:TEXTBOX ID='txt' runat="server"></ASP:TEXTBOX>
    <ASP:CHECKBOX ID='chk' runat="server" Text='无此选项' /> <BR>
    </ITEMTEMPLATE>
    <FOOTERTEMPLATE>
    <ASP:BUTTON Text="保存,下一步" ID='btnStep2' CommandName="next" OnClick="btnStep2_Click" runat="server" />
    </FOOTERTEMPLATE>
    </ASP:REPEATER>
    </ITEMTEMPLATE>
    </ASP:REPEATER>
    protected void repChild_ItemCommand(object sender, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
    {
    if(e.CommandName  == "next")
    {
     
    Repeater rp = (Repeater)sender; foreach(RepeaterItem item in rp.Items)
    {
    TextBox txt = (TextBox)item.FindControl("txt"); Response.Write(txt.Text  +"*****<BR>");
    }
    }
    }
      

  8.   

    现在添加数据是可以了.但是我是想一步一步来添加的啊.
    假设父Repeater中有3条记录.子Repeater中也有N条记录.我单击"保存,下一步"的时候把Textbox的各个值写到数据库,然后进行下一步,上一步的Repeater不显示,下一个Repeater显示,依此类推.....这个效果要怎样做啊?
      

  9.   

    学习中... 欢迎加入ASP.NET(C#)学习交流QQ群号:①32801051(已满) ②23222074(请不要两个群都加)