首页 新闻 会员 周边 捐助

dropdownlist 设置enabled=false,页面提交后dropdownlist选中的值会变成第一项,怎么解决?

0
悬赏园豆:20 [已解决问题] 解决于 2015-10-09 15:38

我想实现在修改页面的一个dropdownlist下拉不可选择,信息保存后dropdownlist还是初始化选择的数据,怎么处理呢?

最美的不是下雨天的主页 最美的不是下雨天 | 初学一级 | 园豆:4
提问于:2015-10-08 11:38
< >
分享
最佳答案
0

不是很懂什么意思. 如果是webform的话,给个SelectedValue或者SelectedIndex不行吗?把你的代码贴出来看看呗.

收获园豆:15
李丶GuanYao | 小虾三级 |园豆:1228 | 2015-10-08 13:37

如下图片,点击第一张图片里面的修改后 ,“年级”字段在第二张图片所显示的页面是以dropdownlist显示的, 如果我第二张图片里面的dropdownlist控件的enabled设置为true,点击保存后“年级“可以正确保存,如果enabled设置为false,”年级“字段保存的结果都是dropdownlist的第一个选项的值。我要实现的是点击修改后,其他字段可以修改,但是”年级“字段不可以修改,但还是要用dropdownlist显示。

(图片2中”年级“显示被我修改为textbox控件了,我就不修改回来再截图了,大概就是这个意思)

最美的不是下雨天 | 园豆:4 (初学一级) | 2015-10-08 14:17

就是dropdownlist 设置enabled 为false时,页面提交时,dropdownlist的中会变成第一个选项的值,而不是你选中的那个选项值

最美的不是下雨天 | 园豆:4 (初学一级) | 2015-10-08 14:19

@最美的不是下雨天:

能把你代码贴一下吗?按正常来说.不应该会这样的.

1.如果你点击保存并继续,初始化数据获取应该都是在 !IsPostBack 里面获取. 你保存之后不应该会改变数据的值.

2.如果你点击保存并关闭,如果第一次点击修改进来编辑页面. 获取到数据是正确的.. 而年级是Enable=false的. 这样的话. 年级的数据不可能会在点保存的时候改变. 这样第二次进来根本也不可能得到不正确的数据. 

李丶GuanYao | 园豆:1228 (小虾三级) | 2015-10-08 14:41

@李丶GuanYao: 不是我不贴代码,因为在公司框架下面的东西,都封装好了,我也看不到的,可能我说的不怎么清楚,等我下班回去了自己写个例子,然后给你看看吧。

最美的不是下雨天 | 园豆:4 (初学一级) | 2015-10-08 14:56

@李丶GuanYao: 不好意思,昨天回去太晚了就没写,你自己可以试下,dropdownlist设置enable=false,然后提交表单是获取不到dropdownlist选中值的,获取的结果会是下拉选项中第一个选项的值。

最美的不是下雨天 | 园豆:4 (初学一级) | 2015-10-09 08:41

@最美的不是下雨天: 

没试出来. 我贴一下我的测试例子吧. 你看看有什么不同

前台如下:

<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 | 园豆:1228 (小虾三级) | 2015-10-09 11:01

@李丶GuanYao: 对不住了,耽误你这么长时间,怪我自己没有自己动手试,因为用的是公司封装过的dropdownlist,刚才试了下,是公司控件的问题。感谢你的帮助!

最美的不是下雨天 | 园豆:4 (初学一级) | 2015-10-09 15:37
其他回答(1)
0

enabled="enabled",好像是这样拼的,不知道有没有拼错,你试试吧

收获园豆:5
如此低调的男人 | 园豆:842 (小虾三级) | 2015-10-08 14:06

enabled=false?表单提交的时候,是获取不到dropdownlist的选中的值的。

清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册