我目前隐藏了我的GridView
中的asp:TemplateField
列,其中GridViewEmps.Columns[12].Visible = false
来自代码隐藏。这工作正常。为GridView TemplateField禁用而不是Visible = false?
但不是隐藏它,我想禁用(或只读)整个GridView
列。如果这太难了,请在此列中禁用DropDownList
(id DropDownListActive
)。目的是在某些情况下无法更改列的内容。例如,如果进行了特定搜索,则此列将被禁用。否则,它已启用编辑。
下面是设置可见性的代码。我想从可见更改为只读/禁用:
protected void Btn_Search_Click(object sender, EventArgs e)
{
//Bind gridview to DataTable
string empStatus = this.DropDownListStatus.SelectedValue;
if (empStatus == "N/A")
{
GridViewEmps.Columns[12].Visible = false;
}
else
{
GridViewEmps.Columns[12].Visible = true;
}
}
而且模板列:
<asp:TemplateField HeaderText="Active" ItemStyle-Width="80px">
<EditItemTemplate>
<asp:DropDownList ID="DropDownListActive" SelectedValue='<%#Eval("Status")%>' runat="server">
<asp:ListItem Text="N/A" Value="--" Selected="True"></asp:ListItem>
<asp:ListItem Text="Active" Value="Active"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="LabelPrvStatus" runat="server" Text='<%# Bind("PrevStatus") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
感谢。
GridViewEmps.Columns [12] .ReadOnly = true; ?这不适合你吗? – Dylan
我在vs2010'autocomplete'中看不到ReadOnly属性。 – rbhat
这是一个绑定的列,还是你自动生成它?如果绑定了,你可以将只读属性放在 –
Dylan