相应地删除评论当前用户是否是在ListView中发布评论的用户

时间:2012-07-28 14:33:01

标签: c# asp.net

如何根据使用ListView发布该特定评论的用户删除评论?我添加了一个按钮,并使其可见为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'的定义,并且没有扩展方法'Item'可以找到接受类型'System.EventArgs'的第一个参数。我将此代码放在PostComment按钮中。我在哪里做错了吗?

这是显示的错误。

编译错误

描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并相应地修改源代码。

编译器错误消息:CS1061:'System.EventArgs'不包含'Item'的定义,并且没有扩展方法'Item'可以找到接受类型'System.EventArgs'的第一个参数(你是否错过了使用指令或程序集引用?)

来源错误:

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;

1 个答案:

答案 0 :(得分:0)

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

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

如果它位于列表视图中,那么您可以将其命名为

if (e.Item.ItemType == ListViewItemType.DataItem)
{
   ListViewDataItem currentItem = (ListViewDataItem)e.Item;
   Button btn = (Button)currentItem.FindControl("Button2");
}