【发布时间】:2018-01-14 08:50:57
【问题描述】:
我正在尝试使用中继器控件插入评论
我的 html 代码
<asp:Repeater ID="repConcerns" runat="server" OnItemCommand="post" >
<ItemTemplate >
<div class="row col-md-12">
<div class="col-sm-2" style="background-color:#808080">
<asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("Pathh") %>' width="90px" Height="90px" CssClass="img-circle" title='<%#Eval("Name") %>'/> <br/><asp:LinkButton ID="LinkButton1" runat="server" Text='<%#Eval("Name") %>' CssClass="btn btn-info btn-sm" CommandName="btnMessage" CommandArgument='<%#Eval("Username") %>'></asp:LinkButton><br/>
</div>
<div class="col-sm-10" style="background-color:#808080" >
<asp:Label ID="Label1" width="100%" style="padding:7px;" runat="server" Enabled="false" Text='<%#Eval("Title") %>'> </asp:Label>
<asp:TextBox ID="txtMessage" placeholder="Empty Post" width="100%" style="padding:7px;" runat="server" Text='<%#Eval("Detail") %>' TextMode="MultiLine" Enabled="false" Height="100px"> </asp:TextBox>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%#Eval("Sno") %>' />
<div class="bar"></div>
<asp:TextBox ID="txtcomment" runat="server" CssClass="form-control form-control-sm" placeholder="Comment / Write Openion Suggestion" TextMode="MultiLine" Height="40px"></asp:TextBox>
<asp:LinkButton ID="btn" runat="server" CssClass="btn btn-primary" CommandName="comment" CommandArgument='<%#Eval("Sno") %>' >Post</asp:LinkButton>
</div>
</div>
<div style="padding-bottom:10px;"></div>
<%--<br /> --%>
</ItemTemplate>
</asp:Repeater>
和 C# 代码
protected void post(object source, RepeaterCommandEventArgs e)
{
if(e.CommandName== "comment")
{
a = e.CommandArgument.ToString();
SqlConnection con = new SqlConnection(strconn);
SqlCommand com = new SqlCommand();
com.CommandText = "insert into Comments(Sno,Comment,Username)values('" +a+ "','" + txtcomment.Text + "','" + username + "')";
con.Open();
}
}
我不知道如何插入表“评论”。 我制作了一个“页面”,其中它们是墙贴。我已经包含了一个评论选项。评论按钮在每篇文章中都会出现。但我不知道如何在“评论”表中插入评论。我正在尝试使用保存在 HiddenField 中的帖子的相应“Sno”插入评论。但是当我尝试在“txtcomment.text”中写入文本框 id 时,它给了我错误。如何插入。
【问题讨论】:
-
只是为了让您知道您的 SQL 容易受到 SQL 注入攻击。您应该参数化查询。
-
不是为了实际应用,而是为了大学项目。请帮助@SBFrancies
-
@AmaanImtiyaz 即便如此,您也应该尽早养成良好习惯,并使用参数。谁知道呢,如果评估它的人有安全意识,即使这样做也可能会失去你的分数。
-
要获取文本框,您必须使用转发器的 FindControl 方法。在网上和以前的 SO 问题中有很多这样的例子。它没有直接的 ID,因为它可以重复,因此没有一个 ID 可以代表按钮的所有可能副本。而且您的查询不会运行,因为您没有执行它。去看看 ADO.NET 教程。
-
@SBFrancies,我肯定会这样做,我只是没有时间。我明天有提交。所以。我很乐意听取您的建议
标签: c# asp.net visual-studio nested-repeater