我在我的网站上创建了一个搜索页面,在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;
}
}
}
}
}
我如何让它发挥作用
由于
答案 0 :(得分:0)
尝试使用JQuery,而不是使按钮不可见。作为c#属性.Visible,使按钮对DOM完全不可见,而且对页面完全不可见。
通过在标记的底部声明以下内容:
<script type="text/javascript">
$(document).ready(function (){
$('#<%=addFriend.ClientID %>').hide();
});
</script>
页面仍会加载,因为找到了变量,但是被隐藏了。如果您给出:<asp:button style="display: none;" />
然后通过DOM控制按钮可见性