日期:2014-05-18  浏览次数:20576 次

CHECKBOX选择操作对象的问题
如何这边CHECKBOX实现选择操作对象,然后再实现对对象的操作。
example:
我有个BUTTON按钮点击之后实现CHECKBOXLIST模态对话框,然后选择操作对象。选择好了操作对象之后点击确定,然后把操作对象的ID传入到当前页面的TEXBOX中,当前页面进行操作后提交,好像AJAX不能实现这个问题。具体怎么做我不大明白,有没有关键的代码给我提示一下,我不知道另外页面怎么接收CHECKBOXLIST传递过来的值。

------解决方案--------------------
当前js
function doSelect() 

window.open("../subAllUser.aspx?Accept=txtAppraiser"); //txtAppraiser textbox的id

}

模态js
function okbtn_onclick() 

var url = window.location.href //获取当前URL 
var accept = url.split( "=")[1];//取得参数 
var commstr=document.getElementById("txtAppraiser").value;

//window.returnValue=commstr; 
opener.document.getElementById(accept).value=commstr;
window.close() ; 
}
------解决方案--------------------
直接获得你的checkbox的值 通过URL传参 很容易就能获得
------解决方案--------------------
GridView中实现反选和全选功能

在显示数据的时候经常有一些批量操作的功能,比如数据的批量删除等,我们可以利用javascript脚本来辅助实现这一功能,不过如果用asp.net中的CheckBox控件来实现这个功能的话,比较麻烦,因为在GridView这样的控件将asp.net中的Web服务器控件转换成普通HTML控件的时候不能直接按照控件的ID来分配,存在着在一个GridView中有多个CheckBox控件,为了防止命名冲突,asp.net 为页上的各个服务器控件自动生成一个唯一的 ClientID 值。ClientID 值是通过连接控件的 ID 值和它的父控件的 UniqueID 值生成的。如果未指定控件的 ID 值,则使用自动生成的值。如果我们在GridView中添加一个CheckBox控件,我们在生成的HTML控件中会发现它生成的HTML代码类似于下面的格式:

 

<input id="gvUserList_ctl02_ctl01" type="checkbox" name="gvUserList$ctl02$ctl01" checked="checked" disabled="disabled" />
所以我们在用javascript操作GridView这样的控件中的asp.net Web服务器控件一定要注意这个情况,可以通过asp.net Web服务器控件的ClientID属性来操作。

这时候我们可以使用普通HTML控件来达到我们想要的功能,asp.net对于普通HTML控件是不会更改它的id和name属性的。

实现了单选和复选功能之后,我们如何获取选中的值呢?因为是普通HTML控件,自然不能像asp.net Web服务器控件那样利用某个属性来判断,不过我们可以利用一个asp.net Button服务器控件来提交表单,然后通过Request[“控件的name”]来获取选中的值(没有印象的朋友赶紧看第三页的介绍),得到值是形如“15,16,17”这样的字符串,这时我们可以利用SQL语句来进行批量操作,我们的SQL语句可以这么写:

String sql=”delete from Users where UserId in(“+Request["CheckboxGroup"]+”)”;

这样就不必进行分割字符串的操作,只连接数据库操作就删除了选中的数据,大大提高了效率。

因为整个程序的代码比较复杂,所以采用了页面和代码分离的模式,前台代码如下:
------解决方案--------------------
文章太长,详细内容请看:
asp.net夜话之八:数据绑定控件
在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。
------解决方案--------------------
模态对话页中使用<input type="checkbox" name="ids"....
所有待选项统一name,在提交事件中,Request.Form["ids"]即为以逗号间隔的多个已选择对象