动态设置html checkbox默认值
数据库中表:
tb1
id valueall
1 1
2 2
3 3
4 4
5 5
6 6
tb2
id value
1 2
2 4
3 6
现在需要根据tb1动态创建html input checkbox
然后根据tb2中的value 设置 创建的checkbox是否选中
谢谢大家帮忙
[解决办法]
根据外键合并成一个结果集 然后遍历这个结果集(每次遍历根据结果集的value以及id 输出 所需要的input),拼接成新的html 输出。
[解决办法]
//=============================================select操作 Start=============================================
/*
服务器控件dropdownlist再被服务器解析后,客户端呈现为select
声明:如下方法对于自定义的个性化dropdownlist不适用,比如下拉项是div+ul+li的
*/
function SelectChangeFn(selectid, _type) {
$("#" + selectid).change(function() {
switch (_type) {
case "dosomething":
//...
break;
//...
}
})
}
//获取select 选中的 text :
function GetSelectByEdText(selectid) {
return $("#" + selectid).find("option:selected").text();
}
//获取select 选中的 value :
function GetSelectByEdValue(selectid) {
return $("#" + selectid).val();
}
//获取select 选中的 索引 :
function GetSelectByEdIndex(selectid) {
return $("#" + selectid).get(0).selectedIndex;
}
//设置select 选中的 text :
function SetSelectByEdText(selectid, _txt) {
var count = $("#" + selectid + " option").length;
for (var i = 0; i < count; i++) {
if ($("#" + selectid).get(0).options[i].text == _txt) {
$("#" + selectid).get(0).options[i].selected = true;
break;
}
}
}
//设置select 选中的 value :
function SetSelectByEdValue(selectid, _val) {
//$("#" + selectid).attr("value", _val);
//$("#" + selectid).get(0).value = _val;
$("#" + selectid).val(_val);
}
//设置select 选中的 索引 :
function SetSelectByEdIndex(selectid, _selectedIndex) {
$("#" + selectid).get(0).selectedIndex = _selectedIndex; //index为索引值
}
//给select添加一项option(默认为最后,并选中新增项)
function AddSelectItemLast(selectid, _val, _txt) {//如果_txt过大可能会把select撑长
var targetS = $("#" + selectid);
targetS.append("<option value='" + _val + "'>" + _txt + "</option>");
targetS.val(_val);
}
//在select前面插入一项option(并选中新增项)
function InserSelectItemFrist(selectid, _val, _txt) {
var targetS = $("#" + selectid);
targetS.prepend("<option value='" + _val + "'>" + _txt + "</option>");
targetS.val(_val);
}
//删除text值为_txt的Option
function RemoveSelectItemText(selectid, _txt) {
var temp;
var count = $("#" + selectid + " option").length;
for (var i = 0; i < count; i++) {
temp = $("#" + selectid).get(0).options[i];
if ($("#" + selectid).get(0).options[i].text == _txt) {
$(temp).remove();
break;
}
}
}
//删除value值为_val的Option
function RemoveSelectItemValue(selectid, _val) {
$("#" + selectid + " option[value='" + _val + "']").remove();
}
//删除索引值为0的Option
function RemoveSelectItemIndex(selectid, _itemIndex) {
$("#" + selectid + " option:eq(" + _itemIndex + ")").remove();
}
//清空 select各项:
function EmptySelectItemsAll(selectid) {
$("#" + selectid).empty();
}
//设置selec t选中的vlue(原生态js):
function SetSelectByEdValuOriginal(selectid, _val) {
var targetObj=document.getElementById(selectid);
var count = targetObj.options.length;
for (var i = 0; i < count; i++) {
if (targetObj.options[i].value == _val) {
targetObj.options[i].selected = true;
break;
}
}
}
//=============================================select操作 End=============================================
//==========================================radiobuttonlist操作 End=======================================
//获取radiobuttonlist 选中的 text :
function GetRbtnListByEdText(radiobuttonlistid) {
return $("#" + radiobuttonlistid).find("input:checked").next("label").text();
}
//获取radiobuttonlist 选中的 value :
function GetRbtnListByEdValue(radiobuttonlistid) {
return $("#" + radiobuttonlistid).find("input:checked").attr("value");
}
//获取radiobuttonlist 选中的 索引 :
function GetRbtnListByEdIndex(radiobuttonlistid) {
var targetObj = $("#" + radiobuttonlistid + " input");
var tempThis = $("#" + radiobuttonlistid).find("input:checked")
return targetObj.index(tempThis);
}
//设置radiobuttonlist 选中的 text :
function SetRbtnListByEdText(radiobuttonlistid, _txt) {
var tempThis;
var targetObj = $("#" + radiobuttonlistid + " label");
targetObj.each(function() {
tempThis = $(this);
if (tempThis.text() == _txt) {
tempThis.prev("input").attr("checked", "checked"); //.attr("disabled", "disabled");
return;
}
})
}
//设置radiobuttonlist 选中的 value :
function SetRbtnListByEdValue(radiobuttonlistid, _val) {
$("#" + radiobuttonlistid + " input[value='" + _val + "']").attr("checked", "checked");
}
//设置radiobuttonlist 选中的 索引 :
function SetRbtnListByEdIndex(radiobuttonlistid, _selectedIndex) {
var tempThis;
var targetObj = $("#" + radiobuttonlistid + " input");
targetObj.each(function() {
tempThis = $(this);
if (targetObj.index(this) == _selectedIndex) {
tempThis.attr("checked", "checked"); return;
}
})
}
//==========================================radiobuttonlist操作 End=========================================
[解决办法]
如果是我 我会采用checkboxlist或者treeview来显示
那么 就是循环外面 在循环里面 找到控件 判断即可...
以前写的 仅供参考
protected void selectRole(string roleId)
{
while (treeModel.CheckedNodes.Count > 0)
{
treeModel.CheckedNodes[0].Checked = false;
}
List<dosoft.Model.xt_tp_UserModule> list = new dosoft.BLL.xt_tp_UserModule().GetModelList("UserID='" + roleId + "'");
foreach (dosoft.Model.xt_tp_UserModule m in list)
{
string path = "";
string mid = m.ModuleId;
switch (mid.Length)
{
case 2: path = mid;
break;
case 4: path = mid.Substring(0, 2) + "/" + mid;
break;
case 6: path = mid.Substring(0, 2) + "/" + mid.Substring(0, 4) + "/" + mid;
break;
case 8: path = mid.Substring(0, 2) + "/" + mid.Substring(0, 4) + "/" + mid.Substring(0, 6) + "/" + mid;
break;
}
TreeNode node = treeModel.FindNode(path);
if (node != null)
{
node.Checked = true;
}
}
}
[解决办法]
比如:
DataSet dt=GetData()//这里是获取到结果集 具体方法你写
string html="";
foreach(DataRow row in dt.Tables[0].Rows)
{
string input="";
if(row["value"].ToString()=="1")//是否要选中的判断
{
input=string.Format("<input type='checkbox' id='cbx{0} checked='checked'/>'", row["id"].ToString());
}
else
{
input=string.Format("<input type='checkbox' id='cbx{0}/>'", row["id"].ToString());
}
html+=input;
}
return html;
[解决办法]
首先-->取数据,
第二-->根据数据条数拼写html串,控件id可以设置为数据库id
第三-->获取需要选择的数据库id也就是tb2的id
第四-->根据tb2的id去设置第二中的控件id的选中