问题描述
需求:在前台html页面点击checkbox按钮,ashx接受请求并做处理。若checkbox已选中,则将数据库中的false改为true,编辑的时候将数据库中的记录的数据返回checkbox,true就打上勾。问题:checkbox不管选中不选中,ashx程序中收到的boolisRecommend=Convert.ToBoolean(context.Request["IsRecommend"]);始终为false。<p>是否设为推荐产品:<inputtype="checkbox"id="IsRecommend"name="IsRecommend"value="$Data.Product.IsRecommend"/>是</p>
varisTrue=document.getElementById("IsRecommend");if(isTrue.value=="True"){isTrue.checked=true;}if(isTrue.checked==true){isTrue.value="True";}else{isTrue="false";}
boolisRecommend=Convert.ToBoolean(context.Request["IsRecommend"]);if(isRecommend==true){SqlHelper.ExecuteNonQuery("updateT_ProductssetIsRecommend=1whereId=@Id",newSqlParameter("@Id",id));}
解决方案
解决方案二:
应该是你ajaxcontext.Request["IsRecommend"]没传过去吧?你在handle里增加断点,会进去吗?
解决方案三:
关键要看你前台ajax调用ashx的代码
解决方案四:
引用1楼hanjun0612的回复:
应该是你ajaxcontext.Request["IsRecommend"]没传过去吧?你在handle里增加断点,会进去吗?
恩,利用context.Require["IsRecommend"]值没传过去,那当我改变了checkbox的状态后,怎么告诉后台呢?
解决方案五:
引用2楼hanjun0612的回复:
关键要看你前台ajax调用ashx的代码
开始没有用ajax,看见你的建议我试了试。但是没有成功<p>是否设为推荐产品:<inputtype="checkbox"id="IsRecommend"value="$Data.Product.IsRecommend"checked="IsRecommend()"/>是</p>
varisTrue=document.getElementById("IsRecommend");if(isTrue.value=="True"){isTrue.checked=true;}if(isTrue.checked==true){isTrue.value="True";}else{isTrue.value="false";}functionIsRecommend(){varisRight=isTrue.value;ajax("ProductEdit.ashx?IsTrue="+isRight,function(a){alert("");});}
boolisRecommend=Convert.ToBoolean(context.Request["IsTrue"]);if(isRecommend==true){SqlHelper.ExecuteNonQuery("updateT_ProductssetIsRecommend=1whereId=@Id",newSqlParameter("@Id",id));}
前面有ajax告诉后台,让其获取IsTrue的值,但是还是没有变化,取到的一直是false。我刚接触ajax,不是太懂的,不知道我表达清楚了没有,麻烦了。
解决方案六:
ajax("ProductEdit.ashx?IsTrue="+isRight,function(a){alert("");});这个写法有问题改成这样试试$.get("ProductEdit.ashx?IsTrue="+isRight,function(result){alert("result");});
解决方案七:
引用5楼hanjun0612的回复:
ajax("ProductEdit.ashx?IsTrue="+isRight,function(a){alert("");});这个写法有问题改成这样试试$.get("ProductEdit.ashx?IsTrue="+isRight,function(result){alert("result");});
记得引用jquery包