在GridView下有很多DropDownList,修改之后是可以变灰,通过GridView1_RowDataBoundif (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.FindControl("DropDownList1") as DropDownList).Enabled == false)
{
(e.Row.FindControl("DropDownList1") as DropDownList).CssClass = "DropListStyle1";
}
}可以让其变灰,但由于页面数据量大,修改再绑定就需要等待很久,现在我想一点击就直接变灰
<asp:DropDownList ID="DropDownList1" runat="server" CssClass="DropListStyle" SelectedValue='<%# Eval("ReserveState") %>'
Enabled='<%#Eval("ReserveState").ToString()=="0"%>' OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
AutoPostBack="true">
<asp:ListItem Value="0">未预约</asp:ListItem>
<asp:ListItem Value="1">已预约</asp:ListItem>
</asp:DropDownList>
----------------------------DropDownList1_SelectedIndexChanged------------
((DropDownList)(sender)).Enabled = false;-----这里是我想直接变灰的代码,为什么没有反应呢?
{
if ((e.Row.FindControl("DropDownList1") as DropDownList).Enabled == false)
{
(e.Row.FindControl("DropDownList1") as DropDownList).CssClass = "DropListStyle1";
}
}可以让其变灰,但由于页面数据量大,修改再绑定就需要等待很久,现在我想一点击就直接变灰
<asp:DropDownList ID="DropDownList1" runat="server" CssClass="DropListStyle" SelectedValue='<%# Eval("ReserveState") %>'
Enabled='<%#Eval("ReserveState").ToString()=="0"%>' OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
AutoPostBack="true">
<asp:ListItem Value="0">未预约</asp:ListItem>
<asp:ListItem Value="1">已预约</asp:ListItem>
</asp:DropDownList>
----------------------------DropDownList1_SelectedIndexChanged------------
((DropDownList)(sender)).Enabled = false;-----这里是我想直接变灰的代码,为什么没有反应呢?
<select name="GridView1$ctl02$DropDownList1" 类似这样的,是服务器控件,所以ID就是自动生成的
如果使用客户端控件下拉框 其ID就可以知道,不过实现我另外的问题就比较困难和麻烦
if (e.Row.RowType == DataControlRowType.DataRow)
if ((e.Row.FindControl("DropDownList1") as DropDownList).Enabled == false)
{
//JS代码绑定
}
}
这样当页面生成后,所有DropDownList1都绑定了一个JS事件,DropDownList用C#让他变色,是需要有post的,也就是每次需要刷新页面,不慢才怪了。。
<asp:ListItem>a</asp:ListItem>
<asp:ListItem>b</asp:ListItem>
<asp:ListItem>c</asp:ListItem>
<asp:ListItem>d</asp:ListItem>
</asp:DropDownList>DropDownList1.Attributes.Add("onchange", "this.disabled=true;");
那个onchange的事件需要等待??有点奇怪的呵呵~~~