小弟做了个简单的论坛,只有2个页面,主界面是用gridview做的,还有个是显示发表主题后和回复文章后的界面,显示发表主题我是用gridview做的,没有问题. 
问题就在于,回复主题我是用dataList中嵌套用户控件做的.这个页面就包括了gridview(显示发表主题)+datalist(显示回复主题),datalist,我采用了分页技术. 现在的问题就是,我在datalist中使用的用户控件,有个全局变量replyID总是从最处开始取值. 具体代码. 
用户控件.cs 
string replyID; //就是这个 
public string ReplyID 

set 

this.replyID = value.ToString(); 

} protected void Page_Load(object sender, EventArgs e) 

string postID = Request.QueryString["postID"].ToString(); SqlConnection con = DB.CreateDB(); 
con.Open(); try 

SqlCommand cmd = new SqlCommand("select topic,content,replyer,BBS_identity,replyTime,floor from BBSreply where replyID='"+replyID+"'and postID='"+postID+"'", con); 
SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) 

this.lbl_topic.Text = sdr.GetString(0); 
this.lbl_content.Text = sdr.GetString(1); 
this.lbl_BBSName.Text = sdr.GetString(2); 
this.lbl_BBSIdentity.Text = sdr.GetString(3); 
this.lbl_replyTime.Text = sdr.GetDateTime(4).ToString(); 
this.lbl_number.Text = sdr.GetInt32(5).ToString(); 

sdr.Close(); 

catch (Exception ex) 

Response.Write(ex.Message); 

finally 

con.Close(); 


我在他上一个界面传值给了他 
<asp:DataList ID="DataList1" runat="server" RepeatColumns="1" Style="position: relative" 
Width="860px"> 
<ItemTemplate> 
<uc2:top_reply id="Top_reply1" runat="server" ReplyID='<%# Eval("replyID","{0}") %>' /> //在这里 
</ItemTemplate> 
<AlternatingItemTemplate> 
<uc2:top_reply id="Top_reply2" runat="server" ReplyID='<%# Eval("replyID","{0}") %>' /> //和这里 
</AlternatingItemTemplate> 
</asp:DataList> 
他现在的效果是,replyID总是从第一个开始取,这就造成我点击文章主体页面后,有很多的空记录,"select topic,content,replyer,BBS_identity,replyTime,floor from BBSreply where replyID='"+replyID+"'and postID='"+postID+"'"这个控制. 我想达到的效果是,当我点击文章主题后只显示回复这篇文章的记录,哪些空记录就不显示,也在datalist中不占用行. 这是论坛的收尾工作了,请大家务必指点我一下,就快要交毕业设计了,确实想不出来了哈,在此非常感谢大家.