这是前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="show.aspx.cs" Inherits="show" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.style4
{
width: auto;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:LinkButton ID="LinkButton3" runat="server" Visible="false"><a href="leaveword.aspx">我要留言 </a></asp:LinkButton>
<asp:LinkButton ID="LinkButton1" runat="server" Visible="false"><a href="memberlogin.aspx">登录 </a></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" Visible="false"><a href="login.aspx">注册</a></asp:LinkButton>
<br />
<br />
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" >
<ItemTemplate>
<table id="table1" runat="server" class="style4">
<tr>
<td class="style4">
标题:<%# DataBinder.Eval(Container.DataItem,"title") %> </td>
<td>
<%# DataBinder.Eval(Container.DataItem,"name") %>于<%# DataBinder.Eval(Container.DataItem,"date") %>发表</td>
</tr>
<tr>
<td colspan="2">
留言:<%# DataBinder.Eval(Container.DataItem,"word") %></td>
</tr>
<tr>
<td colspan="2">
<asp:HyperLink ID="Button1" Visible="false" runat="server" NavigateUrl='<%#"?act=1&id="+Eval("id")%>'>查看回复</asp:HyperLink>
<asp:HyperLink ID="Button3" Visible="false" runat="server" NavigateUrl='<%#"?act=2&id="+Eval("id")%>'>收起回复</asp:HyperLink>
</td>
</tr>
<tr>
<td>
<asp:Panel runat="server" ID="Panel1" visible="false">
<table id="table2" runat="server" class="style4" >
<tr>
<td>
<asp:TextBox ID="TextBox1" runat="server" Height="41px" TextMode="MultiLine" Width="1005px"></asp:TextBox></td>
</tr>
<tr>
<td>
<asp:Button ID="Button2" runat="server" Text="回复" onclick="Button2_Click" CommandArgument = '<%# DataBinder.Eval(Container.DataItem,"id") %>' CommandName="Reply"/></td>
</tr>
<tr>
<td>
<asp:Repeater ID="Repeater2" runat="server" >
<ItemTemplate>
<table id="table3" runat="server" class="style4">
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem,"name") %>:<%# DataBinder.Eval(Container.DataItem,"word") %>(<%# DataBinder.Eval(Container.DataItem,"date") %>)
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</table>
</asp:Panel> </td>
</tr>
</table>
<br />
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:leavewordConnectionString4 %>"
SelectCommand="SELECT * FROM [leaveword]"></asp:SqlDataSource>
</div>
</form>
</body>
</html>
这里是后台的Page_Load:protected void Page_Load(object sender, System.EventArgs e)
{
Panel Panel1 = this.Repeater1.FindControl("Panel1") as Panel;
HyperLink Button1 = this.Repeater1.FindControl("Button1") as HyperLink;
HyperLink Button3 = this.Repeater1.FindControl("Button3") as HyperLink;
Repeater Repeater2 = this.Repeater1.FindControl("Repeater2") as Repeater; //Panel Panel1 = (Panel)this.Repeater1.FindControl(string.Format("Panel1{0}", ""));
//HyperLink Button1 = (HyperLink)this.Repeater1.FindControl(string.Format("Button1{0}", ""));
//HyperLink Button3 = (HyperLink)this.Repeater1.FindControl(string.Format("Button3{0}", ""));
//Repeater Repeater2 = (Repeater)this.Repeater1.FindControl(string.Format("Repeater2{0}", "")); //Panel Panel1 = this.Page.FindControl("Panel1") as Panel;
//HyperLink Button1 = this.Page.FindControl("Button1") as HyperLink;
//HyperLink Button3 = this.Page.FindControl("Button3") as HyperLink;
//Repeater Repeater2 = this.Page.FindControl("Repeater2") as Repeater;
//Items[0] if (Session["membername"]==null)
{
LinkButton1.Visible = true;
LinkButton2.Visible = true;
}
else
{
LinkButton3.Visible = true;
Button1.Visible = true;
}
if (!IsPostBack)
{
string act = Request.QueryString["act"];
string leavewordid = Request.QueryString["id"];
string str1 = "Data Source=(local);Initial Catalog=leaveword;integrated security=True";
switch (act)
{
case "1":
SqlConnection conn = new SqlConnection(str1);
conn.Open();
DataSet ds2 = new DataSet();
string str2 = "Select leavewordid From [reply] Where leavewordid='" + leavewordid + "'";
SqlDataAdapter da2 = new SqlDataAdapter(str2, conn);
da2.Fill(ds2, "t1");
Repeater2.DataSource = ds2.Tables["t1"];
Repeater2.DataBind(); Panel1.Visible = true;
Button1.Visible = false;
Button3.Visible = true;
conn.Close();
break;
case "2":
Panel1.Visible = false;
Button1.Visible = true;
Button3.Visible = false;
break;
default:
Panel1.Visible = false;
Button1.Visible = false;
Button3.Visible = false;
break;
}
}
}
然后无论用哪种FindControl找到的值都为null,求高手帮助~
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="show.aspx.cs" Inherits="show" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.style4
{
width: auto;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:LinkButton ID="LinkButton3" runat="server" Visible="false"><a href="leaveword.aspx">我要留言 </a></asp:LinkButton>
<asp:LinkButton ID="LinkButton1" runat="server" Visible="false"><a href="memberlogin.aspx">登录 </a></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" Visible="false"><a href="login.aspx">注册</a></asp:LinkButton>
<br />
<br />
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" >
<ItemTemplate>
<table id="table1" runat="server" class="style4">
<tr>
<td class="style4">
标题:<%# DataBinder.Eval(Container.DataItem,"title") %> </td>
<td>
<%# DataBinder.Eval(Container.DataItem,"name") %>于<%# DataBinder.Eval(Container.DataItem,"date") %>发表</td>
</tr>
<tr>
<td colspan="2">
留言:<%# DataBinder.Eval(Container.DataItem,"word") %></td>
</tr>
<tr>
<td colspan="2">
<asp:HyperLink ID="Button1" Visible="false" runat="server" NavigateUrl='<%#"?act=1&id="+Eval("id")%>'>查看回复</asp:HyperLink>
<asp:HyperLink ID="Button3" Visible="false" runat="server" NavigateUrl='<%#"?act=2&id="+Eval("id")%>'>收起回复</asp:HyperLink>
</td>
</tr>
<tr>
<td>
<asp:Panel runat="server" ID="Panel1" visible="false">
<table id="table2" runat="server" class="style4" >
<tr>
<td>
<asp:TextBox ID="TextBox1" runat="server" Height="41px" TextMode="MultiLine" Width="1005px"></asp:TextBox></td>
</tr>
<tr>
<td>
<asp:Button ID="Button2" runat="server" Text="回复" onclick="Button2_Click" CommandArgument = '<%# DataBinder.Eval(Container.DataItem,"id") %>' CommandName="Reply"/></td>
</tr>
<tr>
<td>
<asp:Repeater ID="Repeater2" runat="server" >
<ItemTemplate>
<table id="table3" runat="server" class="style4">
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem,"name") %>:<%# DataBinder.Eval(Container.DataItem,"word") %>(<%# DataBinder.Eval(Container.DataItem,"date") %>)
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</table>
</asp:Panel> </td>
</tr>
</table>
<br />
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:leavewordConnectionString4 %>"
SelectCommand="SELECT * FROM [leaveword]"></asp:SqlDataSource>
</div>
</form>
</body>
</html>
这里是后台的Page_Load:protected void Page_Load(object sender, System.EventArgs e)
{
Panel Panel1 = this.Repeater1.FindControl("Panel1") as Panel;
HyperLink Button1 = this.Repeater1.FindControl("Button1") as HyperLink;
HyperLink Button3 = this.Repeater1.FindControl("Button3") as HyperLink;
Repeater Repeater2 = this.Repeater1.FindControl("Repeater2") as Repeater; //Panel Panel1 = (Panel)this.Repeater1.FindControl(string.Format("Panel1{0}", ""));
//HyperLink Button1 = (HyperLink)this.Repeater1.FindControl(string.Format("Button1{0}", ""));
//HyperLink Button3 = (HyperLink)this.Repeater1.FindControl(string.Format("Button3{0}", ""));
//Repeater Repeater2 = (Repeater)this.Repeater1.FindControl(string.Format("Repeater2{0}", "")); //Panel Panel1 = this.Page.FindControl("Panel1") as Panel;
//HyperLink Button1 = this.Page.FindControl("Button1") as HyperLink;
//HyperLink Button3 = this.Page.FindControl("Button3") as HyperLink;
//Repeater Repeater2 = this.Page.FindControl("Repeater2") as Repeater;
//Items[0] if (Session["membername"]==null)
{
LinkButton1.Visible = true;
LinkButton2.Visible = true;
}
else
{
LinkButton3.Visible = true;
Button1.Visible = true;
}
if (!IsPostBack)
{
string act = Request.QueryString["act"];
string leavewordid = Request.QueryString["id"];
string str1 = "Data Source=(local);Initial Catalog=leaveword;integrated security=True";
switch (act)
{
case "1":
SqlConnection conn = new SqlConnection(str1);
conn.Open();
DataSet ds2 = new DataSet();
string str2 = "Select leavewordid From [reply] Where leavewordid='" + leavewordid + "'";
SqlDataAdapter da2 = new SqlDataAdapter(str2, conn);
da2.Fill(ds2, "t1");
Repeater2.DataSource = ds2.Tables["t1"];
Repeater2.DataBind(); Panel1.Visible = true;
Button1.Visible = false;
Button3.Visible = true;
conn.Close();
break;
case "2":
Panel1.Visible = false;
Button1.Visible = true;
Button3.Visible = false;
break;
default:
Panel1.Visible = false;
Button1.Visible = false;
Button3.Visible = false;
break;
}
}
}
然后无论用哪种FindControl找到的值都为null,求高手帮助~
Control myControl = Repeater2.Items[0].FindControl("panel1");
if (myControl != null)
{
Response.Write("成功");
}