首页 新闻 会员 周边 捐助

jquery.ajax请求aspx页面,处理服务器端控件时无效果

0
悬赏园豆:10 [已解决问题] 解决于 2012-10-30 11:47

asp.net实现一个简单的限制编辑用户名密码的功能。结果出问题了,求大侠指教!

aspx页面:

JS:
        function EditLoginDetails(enable) {
            $.ajax({
                type: 'post',
                url: "EmployeeManage.aspx",
                data: { name: "editLogin", value: enable }
            });
        }

HTML:

<input type="checkbox" id="cb_EnableEditEmpLoginDetails_clicent" value="Update login details" onchange="javascript:EditLoginDetails(this.checked )" />


后台cs代码:

 if (Request.Form["name"].ToUpper() == "editLogin".ToUpper())
                {
                    if (Request.Form["value"].ToString().ToUpper() == "true".ToUpper())
                    {
                        txt_EmpPwd.Enabled = true;
                        txt_EmpUserName.Enabled = true;
                        txt_EmpConfirmPwd.Enabled = true;
                    }
                    else
                    {
                        txt_EmpPwd.Enabled = false;
                        txt_EmpUserName.Enabled = false;
                        txt_EmpConfirmPwd.Enabled = false;
                    }
                }

调试跟进来看,禁用和启用的代码执行了,而且其他地方的代码没有再对其Enabled赋值。但是页面上没效果!

其小本的主页 其小本 | 初学一级 | 园豆:37
提问于:2012-10-29 14:10
< >
分享
最佳答案
0

直接在js中控制,代码如下(我是按照三个text标签写的,如果是其他标签,那设置不可用的语句可能要变动,随机应变吧):

function EditLoginDetails(enable) {

    if(enable == true){

      $("#txt_EmpPwd").attr("disabled",true);

      $("#txt_EmpUserName").attr("disabled",true);

      $("#txt_EmpConfirmPwd").attr("disabled",true);

    }  else{

      $("#txt_EmpPwd").attr("disabled",false);

      $("#txt_EmpUserName").attr("disabled",false);

      $("#txt_EmpConfirmPwd").attr("disabled",false);

    }     

}

收获园豆:5
ms_water | 小虾三级 |园豆:510 | 2012-10-29 15:30
其他回答(5)
0

你后台设置,要刷新页面才行,你的ajax 么有刷新,刷新页面了,就重新生成html 了,会保存服务器控件值。

建议 直接 js 设置 可不可用

收获园豆:1
Qlin | 园豆:2403 (老鸟四级) | 2012-10-29 14:13

直接用js肯定可以呀 ·帮写 个噻·~

支持(0) 反对(0) 其小本 | 园豆:37 (初学一级) | 2012-10-29 14:32

目的是无刷新实现这个功能

支持(0) 反对(0) 其小本 | 园豆:37 (初学一级) | 2012-10-29 14:33
0

单独建立一个页面用来处理ajax请求,再根据返回值判断是否要Enabled

收获园豆:1
田林九村 | 园豆:2367 (老鸟四级) | 2012-10-29 14:18

独立页面怎么处理EmployeeManage.aspx的控件··目的是无刷新实现这个功能

支持(0) 反对(0) 其小本 | 园豆:37 (初学一级) | 2012-10-29 14:32

@其小本: 单独建立一个页面用来处理ajax请求,再根据返回值判断是否要用js Enabled掉相应控件

支持(0) 反对(0) 田林九村 | 园豆:2367 (老鸟四级) | 2012-10-29 15:14
0

 if (Request.Form["name"].ToUpper() == "editLogin".ToUpper())
                {
                    if (Request.Form["value"].ToString().ToUpper() == "true".ToUpper())
                    {
                        txt_EmpPwd.Enabled = true;
                        txt_EmpUserName.Enabled = true;
                        txt_EmpConfirmPwd.Enabled = true;
                    }
                    else
                    {
                        txt_EmpPwd.Enabled = false;
                        txt_EmpUserName.Enabled = false;
                        txt_EmpConfirmPwd.Enabled = false;
                    }
                } 这段代码写在什么方法里了??? cs文件的 load执行完以后开始执行页面的js有先有后

收获园豆:1
sunlary | 园豆:934 (小虾三级) | 2012-10-29 14:32

Page_Load里了

支持(0) 反对(0) 其小本 | 园豆:37 (初学一级) | 2012-10-29 14:33
0

你那些服务器端的控件根本访问不到,你怎么控制呢,这个问题还是前台控制好了,如果需要持久化的显示,你需要记录一些信息。

收获园豆:1
chenping2008 | 园豆:9836 (大侠五级) | 2012-10-29 15:13
0

当你ajax请求页面时,实际上建立的页面的另一个实例,根本控制不了你这个当前页面。

ajax请求服务端,服务端应该返回标识,js拿到这个标识再修改页面。

收获园豆:1
for certain | 园豆:324 (菜鸟二级) | 2012-10-29 18:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册