那位前辈能提供一个ASP.NET 留言 实现回复,并可以针对回复可以回复的功能,类似CSDN回复的功能,先行谢过!

心灵彩虹 2010-05-25 09:16:13
那位前辈能提供一个ASP.NET 留言 实现回复,并可以针对回复可以回复的功能,类似CSDN回复的功能,先行谢过!
...全文
673 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
残月照我心 2012-09-28
  • 打赏
  • 举报
回复
求来个可以下载文件吧,各位大神。小弟学习。
独孤名 2011-08-12
  • 打赏
  • 举报
回复
看代码会死人啊......自己来!!!!
aijiaerzhang 2011-03-01
  • 打赏
  • 举报
回复
很迷茫,受白了头
凤老三 2010-07-20
  • 打赏
  • 举报
回复
//mStf.DocID = ViewState["cid"] == null ? 1 : Convert.ToInt32 (ViewState["cid"]);
mStf.DocID = 4;
动态的怎么获得啊.我卡这里很久了.今天看到了.
Zero_Strong 2010-06-21
  • 打赏
  • 举报
回复
真长啊。感谢你们分享出来
loverszhaokai 2010-06-21
  • 打赏
  • 举报
回复
加油啊
lnit728 2010-05-26
  • 打赏
  • 举报
回复
关注aaaa
qq2013 2010-05-26
  • 打赏
  • 举报
回复
jjkjkkjjk
lzk1018834925 2010-05-26
  • 打赏
  • 举报
回复
路过,学习收藏一下...
心灵彩虹 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 coverallwangp 的回复:]
表我也会设计,关键是怎么展示,用什么控件呢?
[/Quote]后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using Zhiyd.DB.Model;
using Zhiyd.DB.BLL;
using Zhiyd.DB.DAL;

using Zhiyd.DB;

public partial class Comment_Comment : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataBound();
}
}
//绑定数据
protected void DataBound()
{
string aidSelect = "SELECT * from TSS_Comment, UDS_Staff,TSS_Document where TSS_Comment.DocID=TSS_Document.DocID and TSS_Comment.Staff_ID=UDS_Staff.Staff_ID";
DataTable fileTable = new DataTable();
fileTable = DbAccess.GetDS(aidSelect).Tables[0];

if (fileTable.Rows.Count >= 0)
{
rptComment.DataSource = fileTable;
rptComment.DataBind();
}
}
//添加功能
protected void btnSutmit_Click(object sender, EventArgs e)
{
if (this.txtReviewContent.Text.Length > 2000)
{
Response.Write("<script>alert('评论不能超过1000字!')</script>");
}
if (string.IsNullOrEmpty(this.txtCommentScore.Text))
{
Response.Write("<script>alert('评分不能为空!')</script>");
return;
}
else
{
M_TSS_Comment mStf = new M_TSS_Comment();
B_TSS_Comment bStf = new B_TSS_Comment();
mStf.ReviewTitle = this.txtReviewTitle.Text.Trim();
mStf.ReviewContent = this.txtReviewContent.Text.Trim();
//mStf.DocID = ViewState["cid"] == null ? 1 : Convert.ToInt32 (ViewState["cid"]);
mStf.DocID = 4;
mStf.Staff_ID =Convert.ToInt32(Request.Cookies["UserID"].Value.Trim());

mStf.IsMaster = this.cbIsMaster.Checked;
mStf.StarLevel = this.ddlStarLevel.SelectedItem.Text;
mStf.ReviewTime = DateTime.Now;
mStf.CommentScore = Convert.ToDecimal(this.txtCommentScore.Text.Trim());
mStf.ReviewContent = this.txtReviewContent.Text;
mStf.ReviewIP = Request.UserHostAddress;
int rtv = bStf.Add(mStf);
Response.Write("<script>alert('添加成功!')</script>");
}
//绑定
DataBound();
//清空控件
this.txtReviewContent.Text = "";
this.txtReviewTitle.Text = "";
this.ddlStarLevel.SelectedIndex = -1;
this.txtCommentScore.Text = "";
}
//删除、引用功能
protected void rptComment_ItemCommand(object sender, RepeaterCommandEventArgs e)
{

if (e.CommandName == "Del")//删除事件
{
M_TSS_Comment mStf = new M_TSS_Comment();
B_TSS_Comment bStf = new B_TSS_Comment();
//UDS_Staff Stf = new UDS_Staff();
bStf.Delete(Convert.ToInt32(e.CommandArgument));
bool s = true;
if (s)
{
Response.Write("<script>alert('删除成功!')</script>");
DataBound();
}
else
{
Response.Write("<script>alert('删除失败!')</script>");
}

}
if (e.CommandName == "Quote")//引用事件
{
M_TSS_Comment mStf = new M_TSS_Comment();
B_TSS_Comment bStf = new B_TSS_Comment();

M_UDS_Staff mUs = new M_UDS_Staff();
B_UDS_Staff bUs = new B_UDS_Staff();
int cid = Convert.ToInt32(e.CommandArgument);
ViewState["cid"] = cid;
mStf = bStf.GetModel(cid);
mUs = bUs.GetModel(false,mStf.Staff_ID??3);
//this.txtReviewContent.Text = "<div style='background-color:red;'>"+mStf.ReviewContent+"</div>";
this.txtReviewContent.Text = String.Format(
"<div class="comment"><p class="title"><span>{0} 发表</span>{1}</p>{2}</div>",
DateTime.Now, mUs.Staff_Name, mStf.ReviewContent);
}
}
public string Encode(string str)
{
str = str.Replace("&", "&");
str = str.Replace("'", "''");
str = str.Replace("\"", """);
str = str.Replace(" ", " ");
str = str.Replace("<", "<");
str = str.Replace(">", ">");
str = str.Replace("\n", "<br>");
return str;
}
/// <summary>
///解析html成 普通文本
/// </summary>
/// <param name="str">string</param>
/// <returns>string</returns>
public string Decode(string str)
{
str = str.Replace("<br>", "\n");
str = str.Replace(">", ">");
str = str.Replace("<", "<");
str = str.Replace(" ", " ");
str = str.Replace(""", "\"");
return str;
}
//重置清空功能
protected void btnReset_Click(object sender, EventArgs e)
{
this.txtCommentScore.Text = "";
this.txtReviewContent.Text = "";
this.cbIsMaster.Checked = true;
this.txtReviewTitle.Text = "";
this.ddlStarLevel.SelectedIndex = -1;
}
}

自己解决了谢谢大家。
心灵彩虹 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 coverallwangp 的回复:]
表我也会设计,关键是怎么展示,用什么控件呢?
[/Quote]前台界面
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Comment.aspx.cs" Inherits="Comment_Comment" %>
<!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 id="Head1" runat="server">
<link rel="stylesheet" type="text/css" />
<link href="../Css/BasicLayout.css" rel="stylesheet" type="text/css" />
<title>无标题页</title>
<style type="text/css" >
*{margin:0;padding:0;}
body{margin:10px;font-size:14px;font-family:宋体}
h1{font-size:26px;margin:10px 0 15px;}
#commentHolder{width:540px;border-bottom:1px solid #aaa;}
.comment{padding:5px 8px;background:#f8fcff;border:1px solid #aaa;font-size:14px;border-bottom:none;}
.comment p{padding:5px 0;}
.comment p.title{color:#1f3a87;font-size:12px;}
.comment p span{float:right;color:#666}
.comment div{background:#ffe;padding:3px;border:1px solid #aaa;line-height:140%;margin-bottom:5px;}
.comment div span{color:#1f3a87;font-size:12px;}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Panel ID="Panel1" runat="server" Height="50px" Width="98%">
<table cellpadding="0" cellspacing="1" class="border" align="left">
<asp:Repeater ID="rptComment" OnItemCommand="rptComment_ItemCommand" runat="server">
<ItemTemplate>
<tr>
<td class="bqright" style="width: 100%;">
<table>
<tr>
<td style="width: 20%">
回复人:<%# Eval("Staff_Name")%>
</td>
<td style="width: 20%">
是否专家:<%# Eval("IsMaster")%>
</td>
</tr>
<tr>
<td style="width: 20%">
评论星级:<%#Eval("StarLevel")%>
</td>
<td style="width: 20%">
评论人IP:<%#Eval("ReviewIP")%>
</td>
</tr>
<tr>
<td>
评分:<%#Eval("CommentScore")%>
</td>
<td>
回复时间:<%#Eval("ReviewTime")%>
</td>
</tr>
</table>
<table width="100%">
<tr>
<td>
评论标题:
</td>
</tr>
<tr>
<td style="width: 100%">
<%# Eval("ReviewTitle")%>
</td>
</tr>
<tr>
<td>
评论内容:
</td>
</tr>
<tr>
<td style="width: 100%">
<%#Decode(Eval("ReviewContent").ToString())%>
</td>
</tr>
</table>
<table>
<tr>
<td>
<asp:LinkButton ID="lnkbtnDel" runat="server" CommandArgument='<%#Eval("CID") %>'
CommandName="Del" OnClientClick="return confirm('是否删除此回复?')">删除</asp:LinkButton></td>
<td>
<asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%#Eval("CID") %>'
CommandName="Quote" >引用</asp:LinkButton></td>
</tr>
</table>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</asp:Panel>
<asp:Panel ID="Panel2" runat="server" Width="100%">
<table cellpadding="0" cellspacing="0" style="width: 100%">
<tr>
<td style="width: 12%; height: 22px;">
评分:</td>
<td style="width: 56%; height: 22px;">
<asp:TextBox ID="txtCommentScore" runat="server" Width="124px"></asp:TextBox><asp:RegularExpressionValidator
ID="RegularExpressionValidator19" runat="server" ControlToValidate="txtCommentScore"
ErrorMessage="输入money类型!" ValidationExpression="^\d{1,12}(?:\.\d{1,4})?$"></asp:RegularExpressionValidator></td>
</tr>
<tr>
<td style="width: 12%">
评论星级:</td>
<td style="width: 56%">
<asp:DropDownList ID="ddlStarLevel" runat="server" Width="130px">
<asp:ListItem>--请选择--</asp:ListItem>
<asp:ListItem>★</asp:ListItem>
<asp:ListItem>★★</asp:ListItem>
<asp:ListItem>★★★</asp:ListItem>
<asp:ListItem>★★★★</asp:ListItem>
<asp:ListItem>★★★★★</asp:ListItem>
</asp:DropDownList></td>
</tr>
<tr>
<td style="width: 12%">
是否专家:</td>
<td style="width: 56%">
<asp:CheckBox ID="cbIsMaster" runat="server" /></td>
</tr>
<tr>
<td style="width: 12%; height: 24px;">
评论标题:</td>
<td style="width: 100px; height: 24px;">
<asp:TextBox ID="txtReviewTitle" runat="server" Width="440px"></asp:TextBox></td>
</tr>
<tr>
<td style="width: 12%">
评论内容:</td>
<td style="width: 56%">
<asp:TextBox ID="txtReviewContent" runat="server" Height="152px" Width="440px" TextMode="MultiLine"></asp:TextBox><font
style="color: red">(请输入1000字以内的评论。)</font></td>
</tr>
<tr>
<td style="width: 12%">
<asp:Button ID="btnSutmit" runat="server" Text="提交" OnClick="btnSutmit_Click" /></td>
<td style="width: 56%">
<asp:Button ID="btnReset" runat="server" Text="重置" OnClick="btnReset_Click" /></td>
</tr>
</table>
</asp:Panel>
</div>
</form>
</body>
</html>
JiuchunYoung 2010-05-25
  • 打赏
  • 举报
回复
freetextbox 富文本框的控件 第三方的
  • 打赏
  • 举报
回复


SQL:
CREATE TABLE [dbo].[Message](
[PKID] [int] IDENTITY(1,1) NOT NULL,
[FK_UserMaster] [int] NULL,
[FK_Link] [int] NULL,
[UserName] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL,
[UserEmail] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Body] [text] COLLATE Chinese_PRC_CI_AS NULL,
[Parent] [int] NULL,
[YesNum] [int] NULL,
[NoNum] [int] NULL,
[IsFuck] [bit] NULL,
[IP] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[CreateTime] [datetime] NULL,
[Memo] [text] COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_Message] PRIMARY KEY CLUSTERED
(
[PKID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  • 打赏
  • 举报
回复
ascx.cs:
[code=C#]using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class Controls_www_ArticleFoot : System.Web.UI.UserControl
{
protected int PKID
{
get
{
return Request.QueryString["id"] == null ? 0 : int.Parse(Request.QueryString["id"].ToString());
}
}
protected void Page_Load(object sender, EventArgs e)
{
dataBindMessage();
this.TbMessage.Visible = IfMessage;
}
private bool _ifMessage=false;
public bool IfMessage
{
get {
return _ifMessage;
}
set {
_ifMessage = value;
}
}
private bool _ifSend = false;
public bool IfSend
{
get
{
return _ifSend;
}
set
{
_ifSend = value;
}
}
//绑定评论
protected void dataBindMessage()
{
this.DataList1.DataSource = DAL.DbHelperSQL.Query("select * from message where fk_link=" + PKID + " order by pkid desc");
this.DataList1.DataBind();
this.lblCount.Text = "评论(共" + this.DataList1.Items.Count + "条)";
}
//保存评论
protected void btnMessage_Click(object sender, EventArgs e)
{
if (GlobalFacade.PageContext.UserID == 0)
{
ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "MessageShow", "sAlert('<br>请先登录','#')", true);
Page.RegisterStartupScript("myscript", "<script>window.onload=function(){sAlert('<br>请先登录','#');}</script>");
return;
}
if (this.txtCheckCode.Text.ToLower() != Session["_CheckCode"].ToString().ToLower())
{
ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "MessageShow", "sAlert('<br>验证码错误!','#')", true);
Page.RegisterStartupScript("myscript", "<script>window.onload=function(){sAlert('<br>验证码错误','#');}</script>");
return;
}
string Body = string.Empty;
if (ViewState["YYID"] != null)
{
DataTable dt = DAL.DbHelperSQL.Query("select * from message where pkid=" + ViewState["YYID"].ToString()).Tables[0];
Body = this.txtBody.Text.Replace("[已引用]", "<div style=\" padding-left:30px;border-color:#FFA500;border-style:solid;border-width:1px\"><b>引用:</b><br/><font style=\"color:#616161\">" + dt.Rows[0]["userName"] +
"</font><font style=\"color:#9f7e4c\">(" + dt.Rows[0]["createtime"] + ")</font><br/>" + dt.Rows[0]["body"] + "</div>");
}
else
Body = this.txtBody.Text;
string Name = GlobalFacade.PageContext.TrueName;
DAL.DbHelperSQL.GetSingle("Insert into Message(FK_UserMaster,fk_link,Username,UserEmail,Body,Parent,CreateTime) values("+GlobalFacade.PageContext.UserID+"," +
PKID + ",'" + Name + "','" + GlobalFacade.PageContext.UserMaster.Email + "','" + Body + "',0,'" + System.DateTime.Now.ToString() + "')");
dataBindMessage();
SysProcedure.UI_UpdateArticleHot(PKID.ToString());
this.txtBody.Text = "";
this.txtCheckCode.Text = "";
ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "MessageShow", "sAlert('<br>评论成功!','')", true);
//Page.RegisterStartupScript("myscript", "<script>window.onload=function(){sAlert('<br>评论成功','#');}</script>");

}
//支持
protected void lbYesNum_Click(object sender, EventArgs e)
{
LinkButton lb = sender as LinkButton;
string messageid = lb.CssClass;
DAL.DbHelperSQL.GetSingle("update message set yesNum=isnull(yesNum,0)+1 where pkid=" + messageid);
dataBindMessage();
ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "MessageShow", "sAlert('<br>谢谢您的参与!','')", true);
//Page.RegisterStartupScript("myscript", "<script>window.onload=function(){sAlert('<br>谢谢您的参与','#');}</script>");
}
//反对
protected void LinkButton3_Click(object sender, EventArgs e)
{
LinkButton lb = sender as LinkButton;
string messageid = lb.CssClass;
DAL.DbHelperSQL.GetSingle("update message set nonum=isnull(yesNum,0)+1 where pkid=" + messageid);
dataBindMessage();
ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "MessageShow", "sAlert('<br>谢谢您的参与!','')", true);
//Page.RegisterStartupScript("myscript", "<script>window.onload=function(){sAlert('<br>谢谢您的参与','#');}</script>");
}
//引用
protected void LinkButton4_Click(object sender, EventArgs e)
{
LinkButton lb = sender as LinkButton;
string messageid = lb.CssClass;
ViewState["YYID"] = messageid;
this.txtBody.Text = "[已引用]";
}

protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
DataList1.EditItemIndex = e.Item.ItemIndex;
dataBindMessage();
}
//回复
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
string au_id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
string au_lname = ((TextBox)e.Item.FindControl("txtreplay")).Text.Trim();

DAL.DbHelperSQL.ExecuteSql("update message set [body]=Convert(nvarchar(4000),body)+'<br/><div style=\" padding-left:30px;border-color:red;border-style:solid;border-width:1px;color:red\"><b>主人回复:</b><br/>" + au_lname + "</div>' where pkid=" + au_id);
DataList1.EditItemIndex = -1;
dataBindMessage();
ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "MessageShow", "sAlert('<br>评论成功!','#')", true);
//Page.RegisterStartupScript("myscript", "<script>window.onload=function(){sAlert('<br>评论成功','#');}</script>");
}
protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{
DataList1.EditItemIndex = -1;
dataBindMessage();
}
protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
string au_id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
DAL.DbHelperSQL.ExecuteSql("delete * from message where pkid=" + au_id);
dataBindMessage();
}
}
[/code]
  • 打赏
  • 举报
回复
ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ArticleFoot.ascx.cs" Inherits="Controls_www_ArticleFoot" %>
<%@ Register Assembly="System.Web.Extensions" Namespace="System.Web.UI" TagPrefix="asp" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<%@ Register Src="../Controls/DataListTool.ascx" TagName="DataListTool" TagPrefix="uc2" %>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<% if (IfMessage)
{ %>

<table border="0" cellpadding="0" cellspacing="0" width="100%" id="TbMessage" runat="server"
visible="false" class="tblinheight">
<tr class="commgray">
<td align=left style="border-top: #dedede solid 1px;">
 用户评论
</td>
<td style="border-top: #dedede solid 1px;" align="right">
<b>
<asp:Label ID="lblCount" runat="server"></asp:Label></b>
</td>
</tr>
<tr>
<td colspan="2">
<asp:DataList ID="DataList1" runat="server" Width="100%" DataKeyField="PKID" OnCancelCommand="DataList1_CancelCommand"
OnDeleteCommand="DataList1_DeleteCommand" OnEditCommand="DataList1_EditCommand"
OnUpdateCommand="DataList1_UpdateCommand">
<ItemTemplate>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="namebox" align="left" colspan="2">
<font style="color: #616161">
<%# Eval("UserName") %></font><font style="color: #9f7e4c">(<%# Eval("CreateTime") %>)</font>
</td>
</tr>
<tr>
<td colspan="2" align="left">
<font style="color: #333333;">
<%# Eval("Body") %></font>
</td>
</tr>
<tr>
<td style="border-bottom: #dedede solid 1px;">
</td>
<td align="right" style="border-bottom: #dedede solid 1px;">
<% if(GlobalFacade.PageContext.UserID>0){ %>
<asp:LinkButton ID="lbYesNum" runat="server" CssClass='<%# Eval("PKID") %>' OnClick="lbYesNum_Click">支持(<%# Convert.ToString(Eval("YesNum")) == string.Empty ? "0" : Convert.ToString(Eval("YesNum"))%>)</asp:LinkButton>
|
<asp:LinkButton ID="LinkButton3" runat="server" CssClass='<%# Eval("PKID") %>' OnClick="LinkButton3_Click">反对(<%# Convert.ToString(Eval("NoNum")) == string.Empty ? "0" : Convert.ToString(Eval("NoNum"))%>)</asp:LinkButton>
|
<asp:LinkButton ID="LinkButton4" runat="server" CssClass='<%# Eval("PKID") %>' OnClick="LinkButton4_Click">引用</asp:LinkButton>

|
<% }%>
<% if (GlobalFacade.PageContext.FK_RoleType==1)
{ %>
<asp:LinkButton ID="LinkButton5" runat="server" CssClass='<%# Eval("PKID") %>' CommandName="Edit">回复</asp:LinkButton>
|
<asp:LinkButton ID="LinkButton6" runat="server" CssClass='<%# Eval("PKID") %>' CommandName="Delete">删除</asp:LinkButton>
<% } %>
</td>
</tr>
</table>
</ItemTemplate>
<EditItemTemplate>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="namebox" align="left" colspan="2">
<font style="color: #616161">
<%# Eval("UserName") %></font><font style="color: #9f7e4c">(<%# Eval("CreateTime") %>)</font>
</td>
</tr>
<tr>
<td colspan="2" align="left">
<font style="color: #333333;">
<%# Eval("Body") %></font>
</td>
</tr>
<tr>
<td>
</td>
<td align="right" valign="top">
<div style="border-color: red; border-style: solid; border-width: 1px">
管理员回复:
<asp:TextBox ID="txtreplay" runat="server" Width="80%" TextMode="MultiLine" Height="100px"></asp:TextBox>
<br />
<asp:LinkButton ID="LinkButton1" Text="<img src='../sysImages/folder/yes.gif'>提 交" CommandName="Update"
runat="server"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" Text="<img src='../sysImages/folder/no.gif'>取 消" CommandName="Cancel"
runat="server"></asp:LinkButton>
</div>
</td>
</tr>
</table>
</EditItemTemplate>
</asp:DataList>
</td>
</tr>
<tr>
<td>
<uc2:DataListTool ID="DataListTool1" runat="server" />
</td>
</tr>
<tr>
<td background="img/list_back.gif">
</td>
</tr>
<tr>
<td>
<% if (GlobalFacade.PageContext.UserID > 0)
{ %>
<table width="98%" id="MessageTable">
<tr>
<td align="right" style="width: 25%" valign="top">
<nobr>*评论内容:</nobr>
</td>
<td align="left">
<asp:TextBox ID="txtBody" runat="server" Width="500px" TextMode="MultiLine" Height="150px"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right" style="width: 25%" valign="top">
*验证码:
</td>
<td align="left">
<asp:TextBox ID="txtCheckCode" runat="server"></asp:TextBox>
<img src="../Controls/ValidateCode.aspx" height="18" title="不区分大小写" alt="不区分大小写"
onclick='javascript:this.src="../Controls/ValidateCode.aspx?ro=" + Math.random();'
style="cursor: pointer; width: 70px;" />
</td>
</tr>
<tr>
<td align="right" style="width: 25%">
</td>
<td align="left">
<asp:Button ID="btnMessage" runat="server" CssClass="inputSubmit" Text="发表评论" OnClick="btnMessage_Click" />
<asp:UpdateProgress ID="UpdateProgress2" runat="server" AssociatedUpdatePanelID="UpdatePanel2">
<ProgressTemplate>
<img src="../images/web/loading.gif"><span style=" color:#FF0000">正在提交数据。。。</span></a>
</ProgressTemplate>
</asp:UpdateProgress>
</td>
</tr>
</table>
<% }
else
{ %>
<p><a href="#"><span style=" font-weight:bold; color:Blue">登录</span></a>后才能发表评论</p>
<% } %>
</td>
</tr>
</table>
<% } %>
</ContentTemplate>
</asp:UpdatePanel>

kwp_911229 2010-05-25
  • 打赏
  • 举报
回复
你要的是不是一个编辑器啊 ?

freetextbox

如果是的要可以加我Q : 76744655我传给你!
coverallwangp 2010-05-25
  • 打赏
  • 举报
回复
表我也会设计,关键是怎么展示,用什么控件呢?
coverallwangp 2010-05-25
  • 打赏
  • 举报
回复
有代码可参考下吗?我也正需要类似的一个页面
nextuntil 2010-05-25
  • 打赏
  • 举报
回复
其实是表设计的问题吧、

回帖表、

MsgId 回帖ID 主键
ArticleId 帖子ID 外键
ParentId 是否针对回帖进行(第一条默认为0)
。。。

大郅这样子勒、

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧