【问题标题】:Creating dynamic posts with htmltextwriter and submitting to the database使用 htmltextwriter 创建动态帖子并提交到数据库
【发布时间】:2017-08-03 12:45:47
【问题描述】:

我创建了一个页面,其中包含从数据库中获取的动态帖子。在每个帖子中,我需要有一个按钮,当用户点击时,它会更改数据库中的值。

我尝试了很多不同的东西。最初我开始用 HTML 渲染一个按钮,但不知道如何让它与数据库交互。我见过 AJAX 提交到数据库,但不知道如何将其放入我的代码中。

我也看过这个Insert Link Button In String Builder,但我无法让它工作。我读到如果我这样做,onClick 属性将不起作用,所以这让我回到了 AJAX。

由于这些按钮是动态生成的,我不知道该怎么做。即使有人能指出我正确的方向,我也会非常感激。

这是我的代码的简化版本:

protected override void Render(HtmlTextWriter writer)
{
    using (SqlConnection conn = new SqlConnection(constring))
    {
        SqlDataAdapter ada = new SqlDataAdapter("SELECT postid, title, text, date FROM Posts", conn);
        conn.Open();
        DataTable dt = new dt();
        ada.Fill(table);

        //dynamic posts
        foreach (DataRow row in dt.Rows)
        {
            writer.AddAttribute("class", "col-sm-6 col-xs-6");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            //main post content
            writer.WriteLine(row["date"].ToString());
            writer.WriteLine("<h1>" + row["title"].ToString() + "</h1>");
            writer.WriteLine("<p>" + row["text"].ToString() + "</p>");
            //writer.Write("<button id='postbtn" + row["postid"].ToString()'">Read Post</button>");

            writer.RenderEndTag();
            writer.WriteLine();
        }
        conn.Close
    }
}

【问题讨论】:

    标签: c# htmltextwriter


    【解决方案1】:

    为了发布你需要一个有效的表单,所以将你的按钮放在一个表单标签内,并设置正确的动作指向你的控制器方法。

    首先,用它的action属性渲染表单标签,然后在里面渲染所有必要的控件,然后关闭表单标签。

    https://www.w3schools.com/html/html_forms.asp

    【讨论】:

    • 会在foreach里面吗?这将为每个按钮生成一个表单。还有其他方法吗?
    • @user7703048 通常你会为每个要更新的元素创建一个表单,所以在你的情况下,在我看来它应该放在 foreach 子句中。它将允许您在每个表单中都有一个 postid 字段,这样您就可以知道应该更新哪些帖子。单击提交按钮时,已发布表单中的数据将发送到服务器。如果你把你所有的元素都放在同一个表单中,我不知道你打算如何获取修改后元素的id。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 2013-06-03
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多