我想实现在修改页面的一个dropdownlist下拉不可选择,信息保存后dropdownlist还是初始化选择的数据,怎么处理呢?
不是很懂什么意思. 如果是webform的话,给个SelectedValue或者SelectedIndex不行吗?把你的代码贴出来看看呗.
如下图片,点击第一张图片里面的修改后 ,“年级”字段在第二张图片所显示的页面是以dropdownlist显示的, 如果我第二张图片里面的dropdownlist控件的enabled设置为true,点击保存后“年级“可以正确保存,如果enabled设置为false,”年级“字段保存的结果都是dropdownlist的第一个选项的值。我要实现的是点击修改后,其他字段可以修改,但是”年级“字段不可以修改,但还是要用dropdownlist显示。
(图片2中”年级“显示被我修改为textbox控件了,我就不修改回来再截图了,大概就是这个意思)
就是dropdownlist 设置enabled 为false时,页面提交时,dropdownlist的中会变成第一个选项的值,而不是你选中的那个选项值
@最美的不是下雨天:
能把你代码贴一下吗?按正常来说.不应该会这样的.
1.如果你点击保存并继续,初始化数据获取应该都是在 !IsPostBack 里面获取. 你保存之后不应该会改变数据的值.
2.如果你点击保存并关闭,如果第一次点击修改进来编辑页面. 获取到数据是正确的.. 而年级是Enable=false的. 这样的话. 年级的数据不可能会在点保存的时候改变. 这样第二次进来根本也不可能得到不正确的数据.
@李丶GuanYao: 不是我不贴代码,因为在公司框架下面的东西,都封装好了,我也看不到的,可能我说的不怎么清楚,等我下班回去了自己写个例子,然后给你看看吧。
@李丶GuanYao: 不好意思,昨天回去太晚了就没写,你自己可以试下,dropdownlist设置enable=false,然后提交表单是获取不到dropdownlist选中值的,获取的结果会是下拉选项中第一个选项的值。
@最美的不是下雨天:
没试出来. 我贴一下我的测试例子吧. 你看看有什么不同
前台如下:
<form id="form1" runat="server"> <div> <asp:DropDownList runat="server" Enabled="False" ID="ddlTest"/> <asp:Button runat="server" ID="btnTest" Text="Test" OnClick="btnTest_OnClick"/> </div> </form>
后台如下:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataTable dt=new DataTable(); DataColumn dtc = new DataColumn("key", typeof(string)); dt.Columns.Add(dtc); dtc = new DataColumn("value", typeof(string)); dt.Columns.Add(dtc); //添加数据到DataTable DataRow dr = dt.NewRow(); dr["key"] = "张"; dr["value"] = "张三"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["key"] = "李"; dr["value"] = "李四"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["key"] = "王"; dr["value"] = "王五"; dt.Rows.Add(dr); ddlTest.DataSource = dt; ddlTest.DataTextField = "value"; ddlTest.DataValueField = "key"; ddlTest.SelectedValue = "李"; ddlTest.DataBind(); } } protected void btnTest_OnClick(object sender, EventArgs e) { var value= ddlTest.SelectedValue; Response.Write("<script language='javascript'>alert('当前选中:" + value + "');</script>"); }
结果显示. 选中的是"李". 如果按你所说的, 那应该是显示选中"张"吧?
@李丶GuanYao: 对不住了,耽误你这么长时间,怪我自己没有自己动手试,因为用的是公司封装过的dropdownlist,刚才试了下,是公司控件的问题。感谢你的帮助!
enabled="enabled",好像是这样拼的,不知道有没有拼错,你试试吧
enabled=false?表单提交的时候,是获取不到dropdownlist的选中的值的。