0

如何根据使用 ListView 发布特定评论的用户删除评论?我添加了一个按钮并将其设为 Visible false,以便在我的 .cs 代码中,当我检查当前登录用户是发布评论的用户时,删除按钮将可见。目前,我试过这个:

protected void PostCommentButton_Click(object sender, EventArgs e)
{
    if (!Page.IsValid)
        return;


    MembershipUser currentUser = Membership.GetUser();
    Guid currentUserId = (Guid)currentUser.ProviderUserKey;


    string connectionString = ConfigurationManager.ConnectionStrings["CommentConnectionString"].ConnectionString;
    string insertSql = "INSERT INTO Comments(Subject, Body, UserId) VALUES(@Subject, @Body, @UserId)";

    using (SqlConnection myConnection = new SqlConnection(connectionString))
    {
        myConnection.Open();

        SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
        myCommand.Parameters.AddWithValue("@Subject", Subject.Text.Trim());
        myCommand.Parameters.AddWithValue("@Body", Body.Text.Trim());
        myCommand.Parameters.AddWithValue("@UserId", currentUserId);

        myCommand.ExecuteNonQuery();

        myConnection.Close();

        if (currentUser.UserName == Eval("UserName").ToString())
    {
        Control deleteButton = e.Item.FindControl("Button2");
        deleteButton.Visible = true;
    }

}

但这给了我错误。它指出“System.EventArgs”不包含“Item”的定义,并且找不到接受“System.EventArgs”类型的第一个参数的扩展方法“Item”。我将此代码放在我的 PostComment 按钮中。我在哪里做错了吗?

这是显示的错误。

编译错误

说明:在编译服务此请求所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改您的源代码。

编译器错误消息:CS1061:“System.EventArgs”不包含“Item”的定义,并且找不到接受“System.EventArgs”类型的第一个参数的扩展方法“Item”(您是否缺少 using 指令或装配参考?)

源错误:

Line 59:         TextBox2.Text = string.Empty;
Line 60: 
Line 61:         if (e.Item.ItemType == ListViewItemType.DataItem)
Line 62:         {
Line 63:             ListViewDataItem currentItem = (ListViewDataItem)e.Item;
4

1 回答 1

0

如果 Button2 位于页面上,那么您可以找到参考

Button btn = Page.FindControl("Button2");

如果它位于列表视图内,那么您可以找到它

if (e.Item.ItemType == ListViewItemType.DataItem)
{
   ListViewDataItem currentItem = (ListViewDataItem)e.Item;
   Button btn = (Button)currentItem.FindControl("Button2");
}
于 2012-07-28T17:26:31.133 回答