注册 登录
编程论坛 ASP.NET技术论坛

版主在吗?请教一个关于论坛回复显示的问题?

airfei 发布于 2007-05-09 06:43, 595 次点击

小弟做了个简单的论坛,只有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中不占用行.

这是论坛的收尾工作了,请大家务必指点我一下,就快要交毕业设计了,确实想不出来了哈,在此非常感谢大家.

8 回复
#2
cyyu_ryh2007-05-09 12:47
加判断撒
#3
cyyu_ryh2007-05-09 17:47

具体的我也没试过,我现在没环境,没办法试.

#4
airfei2007-05-09 18:14

好的,谢谢,有知道的朋友吗?继续顶贴

#5
beniao2007-05-09 18:21
建议你不要这样做,你的回复是数据库里的一条记录撒,你把数据库里的恢复依次读取出来自动生成一个表格,用表格来显示回复内容
#6
beniao2007-05-09 18:23
用一个表格返回一条回复记录 还可以加上CSS修饰,效果更佳.

雅特士为你提供最新,最全面的各种大小项目作业。
上班族/学生/Soho/工作室/公司在这里都可找到你想工作;
网上接项目家里工作,工作找钱两不误,点击下面进入注册页面:
http://www.yateshi.com/common/reg.php?uid=69719
#7
airfei2007-05-09 19:08
问题解决了
#8
airfei2007-05-09 19:10
谢谢版主,和beniao.
#9
beniao2007-05-11 12:26
1