2017-03-07 62 views
0

我有一个GridView和此代码(向下)我想显示按钮,如果状态是打开的,否则按钮应该是不可见的。如何隐藏/显示基于数据库值的按钮

但是这段代码不起作用。该按钮始终可见。

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (((GridView)sender).SelectedRow != null) 
    { 
     GridViewRow g = ((GridView)sender).SelectedRow; 
     string assign= GridView1.SelectedRow.Cells[5].Text; 
     btnassign.Visible = (assign == "open"); 
    }  
} 

<asp:Button Text="assign" ID="btnassign" Visible="false" 
OnClick="btnassign_Click" runat="server" /> 
+0

你调试过'assign'变量吗?也许'assign'总是等于'open'。 – dcg

+1

你在SELECTED INDEX CHANGED中有你的代码。这对我意味着只有当有人选择它时,你的代码才会被激发。 'GridView1_SelectedIndexChanged' – logixologist

回答

-1

更好的利用条件运算符

// ?: conditional operator. 
btnassign.Visible = (assign == "open") ? True : False; 
+0

这与他发布的代码有什么不同,除了更详细? – dstepan

+0

另外'True'和'False'不是C#中布尔值的值。 “true”和“false”是正确的。 – dstepan

0

您可能会丢失在你的GridView的AutoPostBack="true"标签。

<asp:GridView ID="GridView1" runat="server" AutoPostBack="true"></asp:GridView>

相关问题