在Listview中隐藏按钮

时间:2014-12-30 12:04:52

标签: c# asp.net asp.net-mvc visual-studio-2010

我在我的网站上创建了一个搜索页面,在listview中显示结果。每个结果都有一个按钮,如果搜索结果中的用户是朋友,我想隐藏该按钮。

因此,如果任何用户ID的status值为1,那么该人就是朋友隐藏按钮。

检查状态是否有效的查询有效,但该按钮仍然可见。要获取用户的用户ID,我使用了addFriend.CommandArgument。 addfriend就是botton。

其中一个问题是搜索页面无法加载,因为找不到addfriend的变量。

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    if (e.Item.ItemType == ListViewItemType.DataItem)
    {

        if (addFriend == null)
        {
            // IF I REMOVE THIS THE PAGE WILL NOT LOAD BECAUSE PAGE DISPLAYS THE DATA AFTER A BUTTON CLICK ON THE PAGE
        }

        else
        {
            var addFriend = sender as Button;
            // Get the UserId
            Guid currentUserId = (Guid)currentUser.ProviderUserKey;

            string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;


            string insertSql = "SELECT Status from User_friend WHERE ((ProfileId1 = @FriendProfileId) AND (ProfileId = (SELECT ProfileId FROM User_Profile  WHERE UserId = @UserId))) OR ((ProfileId = @FriendProfileId) AND (ProfileId1 = (SELECT ProfileId FROM User_Profile  WHERE UserId = @UserId)))";
            using (SqlConnection myConnection = new SqlConnection(connectionString))
            {

                myConnection.Open();
                SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
                myCommand.Parameters.AddWithValue("@FriendProfileId", addFriend.CommandArgument);
                myCommand.Parameters.AddWithValue("@UserId", currentUserId);
                object result = myCommand.ExecuteScalar();



                if (Convert.ToString(result) == "1")
                {
                    Button hdn = (Button)e.Item.FindControl("addFriend");
                    hdn.Visible = false;
                }

            }
        }
    }
}

我如何让它发挥作用

由于

1 个答案:

答案 0 :(得分:0)

尝试使用JQuery,而不是使按钮不可见。作为c#属性.Visible,使按钮对DOM完全不可见,而且对页面完全不可见。

通过在标记的底部声明以下内容:

<script type="text/javascript">
    $(document).ready(function (){
        $('#<%=addFriend.ClientID %>').hide();
      });
</script>

页面仍会加载,因为找到了变量,但是被隐藏了。如果您给出:<asp:button style="display: none;" />然后通过DOM控制按钮可见性

,则可以这样说