您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
/*正式版的实现 开始*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.WebControls;
using System.Web.UI;
namespace YYControls.SmartGridViewFunction
{
/// <summary>
/// 扩展功能:联动复选框(复选框的全选和取消全选)
/// </summary>
public class CascadeCheckboxFunction : ExtendFunction
{
/// <summary>
/// 构造函数
/// </summary>
public CascadeCheckboxFunction()
: base()
{
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="sgv">SmartGridView对象</param>
public CascadeCheckboxFunction(SmartGridView sgv)
: base(sgv)
{
}
/// <summary>
/// 扩展功能的实现
/// </summary>
protected override void Execute()
{
this._sgv.PreRender += new EventHandler(_sgv_PreRender);
}
/// <summary>
/// SmartGridView的PreRender事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void _sgv_PreRender(object sender, EventArgs e)
{
// 构造向数组中添加成员的脚本
string scriptString = "";
foreach (CascadeCheckbox cc in this._sgv.CascadeCheckboxes)
{
scriptString += String.Format("yy_sgv_ccGridView_pre.push('{0}');", Helper.Common.GetChildControlPrefix(this._sgv));
scriptString += String.Format("yy_sgv_ccAll_post.push('{0}');", cc.ParentCheckboxID);
scriptString += String.Format("yy_sgv_ccItem_post.push('{0}');", cc.ChildCheckboxID);
}
// 注册向数组中添加成员的脚本
if (!this._sgv.Page.ClientScript.IsClientScriptBlockRegistered(String.Format("yy_sgv_cascadeCheckbox_{0}", this._sgv.ID)))
{
this._sgv.Page.ClientScript.RegisterClientScriptBlock
(
this._sgv.GetType(),
String.Format("yy_sgv_cascadeCheckbox_{0}", this._sgv.ID),
scriptString,
true
);
}
}
}
}
/*正式版的实现 结束*/
/*测试版的实现 开始*/
[ToolboxData(@"<{0}:SmartGridView runat='server'></{0}:SmartGridView>")]
public class SmartGridView : GridView
{
}
using System;
using System.Collections.Generic;
using System.Text;
namespace YYControls.SmartGridView
{
/// <summary>
/// javascript
/// </summary>
public class JavaScriptConstant
{
internal const string jsCheckAll = @"<script type=""text/javascript"">
//<![CDATA[
// 隐藏字段的ID,用于存每组的全选复选框ID
var hdnAllName = '[$AllName$]';
// 隐藏字段的ID,用于存每的项复选框ID
var hdnItemName = '[$ItemName$]';
// 组分隔符,一个 全选复选框 和其对应的n个 项复选框 为一个组
var groupSeparator = '[$GroupSeparator$]';
// 项分隔符,项复选框 每个项之间的分隔符
var itemSeparator = '[$ItemSeparator$]';
var strAlls = GetObject(hdnAllName).value;
var strItems = GetObject(hdnItemName).value;
// 全选复选框数组
var aryAlls = strAlls.split(groupSeparator);
// 项复选框数组,每行有一个组的所有项复选框
var aryItems = strItems.split(groupSeparator);
// 全选复选框被单击,参数为 该全选复选框这个对象
function ClickCheckAll(objAll)
{
// 每个全选复选框
for (var i=0; i<aryAlls.length; i++)
{
// 该全选复选框是所单击的全选复选框
if (aryAlls[i] == objAll.id)
{
// 该全选复选框同组下的项复选框数组
aryItem = aryItems[i].split(itemSeparator);
for (var j=0; j<aryItem.length; j++)
{
// 单击的全选复选框是选中状态,并且项复选框不是disabled,则选中
if (objAll.checked && !GetObject(aryItem[j]).parentElement.disabled)
{
GetObject(aryItem[j]).checked = true;
}
// 否则
else
{
GetObject(aryItem[j]).checked = false;
}
}
break;
}
}
}
// 项复选框被单击
function ClickCheckItem()
{
// 每组项复选框
for (var i=0; i<aryItems.length; i++)
{
// 该组的所有项复选框数组
aryItem = aryItems[i].split(itemSeparator);
// 标记,是否同组的项复选框都被选中
var bln = true;
for (var j=0; j<aryItem.length; j++)
{
// 如果该项复选框没被选中,并且不是disabled,则bln设为false
if (!GetObject(aryItem[j]).checked && !GetObject(aryItem[j]).parentElement.disabled)
{
bln = false;
break;
}
}
// bln为true,则设置同组的全选复选框为选中
if (bln)
{
GetObject(aryAlls[i]).checked = true;
}
// 否则
else
{
GetObject(aryAlls[i]).checked = false;
}
}
}
function GetObject(param)
{
return document.getElementById(param);
}
//]]>
</script>";
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Web.UI;
namespace YYControls.SmartGridView
{
/// <summary>
/// CheckboxAll 的摘要说明。
/// </summary>
[ToolboxItem(false)]
public class CheckboxAll
{
private string _checkboxAllID;
/// <summary>
/// 模板列全选复选框ID
/// </summary>
public string CheckboxAllID
{
get { return _checkboxAllID; }
set { _checkboxAllID = value; }
}
private string _checkboxItemID;
/// <summary>
/// 模板列项复选框ID
/// </summary>
public string CheckboxItemID
{
get { return _checkboxItemID; }
set { _checkboxItemID = value; }
}
/// <summary>
/// ToString()
/// </summary>
/// <returns></returns>
public override string ToString()
{
return "CheckboxAll";
}
}
}免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。