首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将消息发布到只包含来自用户ASP.NET WebForm的消息列表的留言板页面

问如何将消息发布到只包含来自用户ASP.NET WebForm的消息列表的留言板页面
EN

Stack Overflow用户
提问于 2022-11-26 17:43:30
回答 2查看 64关注 0票数 0

我只有一个简单的消息页面,包括:文本:和一个提交按钮,然后我有另一个页面,它什么也不包含,这是我的“留言板”--最近发布的消息位于主板上,都是带有母版页的aspx页面。

我有一个SQL DB,我已经假设会有一个包含From: Message:(使用varchar )的表,但是我不明白它是如何以最近最古老的列表方式插入到留言板页面的。

Message.aspx -出发地:文本:提交MessageBoard.aspx -只是一个div,提交的消息将出现在下拉列表中

我希望它是超级简单的没有酷的特性,只有“向每个人提交在MessageBoard.aspx上出现的消息”,仅此而已。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-27 00:49:36

好的,有几个运动部件。

假设您正在运行SQL server。假设你有一个有效的连接?

好的,那么在发布一个新的消息页面上,您可以得到以下标记:

代码语言:javascript
复制
        <h3>Post a message</h3>

        <h4>enter your name</h4>
        <asp:TextBox ID="txtName" runat="server" Width="250px"></asp:TextBox>

        <br />

        <h4>Enter your message</h4>
        <asp:TextBox ID="txtMsg" runat="server" Height="185px" Width="520px"
            TextMode="MultiLine" Font-Size="Large" style="border-radius:20px;border:solid 2px"
            ></asp:TextBox>
        <br />
        <br />
        <asp:Button ID="cmdNewMessage" runat="server" Text="Post Message" CssClass="btn"
            OnClick="cmdNewMessage_Click" />

下面的代码如下所示:

代码语言:javascript
复制
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void cmdNewMessage_Click(object sender, EventArgs e)
    {
        string strSQL =
            @"INSERT INTO tblMessages (UName, Message, MessageDate)
            VALUES (@UName, @Message, @MessageDate)";

        using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.TEST4))
        {
            using (SqlCommand cmdSQL = new SqlCommand(strSQL, conn))
            {
                conn.Open();
                cmdSQL.Parameters.Add("@UName", SqlDbType.NVarChar).Value = txtName.Text;
                cmdSQL.Parameters.Add("@Message",SqlDbType.NVarChar).Value = txtMsg.Text;
                cmdSQL.Parameters.Add("@MessageDate", SqlDbType.NVarChar).Value = DateTime.Now;
                cmdSQL.ExecuteNonQuery();
            }
        }
        Response.Redirect("MessageBoard.aspx");

    }

看起来是这样的:

​

​

当您点击post消息时,我们跳到这个页面,标记:

代码语言:javascript
复制
        <asp:Button ID="cmdPost" runat="server" 
            Text="Post a new message" 
            CssClass="btn" OnClick="cmdPost_Click" />
        <br />
        <br />
        <h2>Messages</h2>

        <asp:GridView ID="GridView1" runat="server"  Width="50%"
            AutoGenerateColumns="False" DataKeyNames="ID"  >
            <Columns>
                <asp:BoundField DataField="UName" HeaderText="Posted by"  />
                <asp:BoundField DataField="MessageDate" HeaderText="At" ItemStyle-Width="180px" />
                <asp:TemplateField HeaderText="Message" >
                    <ItemTemplate>
                        <asp:Textbox ID="txtMsg" runat="server" TextMode="MultiLine" Width="100%" 
                            Text='<%# Eval("Message") %>' 
                            Height='<%# (Regex.Matches(Eval("Message").ToString() , System.Environment.NewLine).Count + 1) * 30 %>' 
                            >
                        </asp:Textbox>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>


        </asp:GridView>

守则是:

代码语言:javascript
复制
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            LoadGrid();
    }

    void LoadGrid()
    {

        using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.TEST4))
        {
            string strSQL = "SELECT * FROM tblMessages ORDER BY MessageDate DESC";
            using (SqlCommand cmdSQL = new SqlCommand(strSQL, conn))
            {
                conn.Open();
                GridView1.DataSource = cmdSQL.ExecuteReader();
                GridView1.DataBind();
            }
        }
    }

    protected void cmdPost_Click(object sender, EventArgs e)
    {
        Response.Redirect("NewMessage.aspx");
    }

我们现在看到/拥有这样的情况:

​

​

票数 0
EN

Stack Overflow用户

发布于 2022-11-26 19:54:29

你不能解释你所说的“我不明白它是如何以最近最古老的方式插入到留言板页面中的东西”,所以我只能猜测。

当发布新消息时,将其插入数据库,包括一个DateTime列。然后,您的邮件列表页面只需获取最新的nn消息,按最新的优先顺序排列。

我猜你知道怎么做。如果没有,请阅读一些有关实体框架核心的内容,因为它提供了一种非常好的处理数据库的方法。

所以,在原则上,你的问题并不比这更复杂。但是,在这方面有很多不同的地方,比如实时更新消息列表,为此您应该使用SignalR,但是如果不对您想要的内容进行更具体的解释,就很难提出任何建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74584385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档