我想知道如何先找到父repeater在找到子repeater的控件,按照我这样写执行时会报错
我做的是二级评论功能
这是aspx代码
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand" >
<ItemTemplate>
<li>
<h4><%#Eval("UserName") %>h4>
<small><%#Eval("Time").ToString() %>small>
<div>
<%#Eval("Content") %>
div>
<asp:LinkButton ID="LinkButton1" runat="server" Text=<%#Eval("UserId") %> Visible="False" CommandArgument=<%#Eval("Id") %> CommandName="Delete">LinkButtonasp:LinkButton>
<asp:Label ID="Label1" runat="server" Text=<%#Eval("Id") %> Visible="false" >asp:Label>
<asp:LinkButton ID="LinkButton2" runat="server" Text="查看回复" CommandName="SRComment">查看回复asp:LinkButton>
<asp:LinkButton ID="LinkButton3" runat="server" Text="回复" CommandName="RComment">回复asp:LinkButton>
<asp:TextBox ID="RTextBox" runat="server" Width="80%" Height="50px" Visible="false">asp:TextBox>
<asp:Button ID="RButton" runat="server" Text="提交" CommandArgument=<%#Eval("Id") %> CommandName="RButton" Visible="false"/>
<asp:Repeater ID="Repeater2" runat="server" Visible="false" OnItemCommand="Repeater2_ItemCommand">
<ItemTemplate>
<li>
<h4> <%#Eval("SendName") %> 回复 <%#Eval("ReceiveName") %> 回复内容:<%#Eval("RContent").ToString().Length > 6 ? Eval("RContent").ToString().Substring(0, 6):Eval("RContent")%>... h4>
<small><%#Eval("Time").ToString() %>small>
<div>
<%#Eval("Content") %>
div>
<asp:LinkButton ID="DLin" runat="server" Text=<%#Eval("SendId") %> Visible="False" CommandArgument=<%#Eval("Id") %> CommandName="Delete">LinkButtonasp:LinkButton>
<asp:LinkButton ID="LinkButton3" runat="server" Text="回复" CommandName="RComment">回复asp:LinkButton>
<asp:TextBox ID="RTextBox" runat="server" Width="80%" Height="50px" Visible="false">asp:TextBox>
<asp:Button ID="RButton" runat="server" Text="提交" CommandArgument=<%#Eval("Comment1Id") %> CommandName="RButton" Visible="false"/>
li>
ItemTemplate>
asp:Repeater>
li>
ItemTemplate>
asp:Repeater>
这是cs代码里子repeater2的itemcommand方法
protected void Repeater2_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
productSrv.DeleteCom2(Convert.ToInt32(e.CommandArgument));
Bind2();
}
if (e.CommandName == "RComment")
{
Repeater rp = new Repeater();
rp = (Repeater)Repeater1.Items[e.Item.ItemIndex].FindControl("Repeater2");
TextBox rt = new TextBox();
Button rbt = new Button();
rt = (TextBox)rp.Items[e.Item.ItemIndex].FindControl("RTextbox");
rbt = (Button)rp.Items[e.Item.ItemIndex].FindControl("RButton");
if (rt.Visible == false && rbt.Visible == false)
{
rbt.Visible = true; rt.Visible = true;
}
else
{
rbt.Visible = false; rt.Visible = false;
}
}
if (e.CommandName == "RButton")
{
Repeater rp = new Repeater();
rp = (Repeater)Repeater1.Items[e.Item.ItemIndex].FindControl("Repeater2");
TextBox rt = new TextBox();
rt = (TextBox)rp.Items[e.Item.ItemIndex].FindControl("RTextbox");
productSrv.AddComment22(Convert.ToInt32(e.CommandArgument), Convert.ToInt32(Session["CustomerId"]), Session["CustomerName"].ToString(), rt.Text);
Bind2();
}
}