扩展GridView控件(7) - 行的指定复选框选中时改变行的样式

实战指南:如何用DCCRN模型提升语音增强效果(附代码示例) 本文提供了基于DCCRN模型进行语音增强的实战指南。通过深入解析复数网络如何协同处理语音的幅度与相位信息,并附有完整的PyTorch代码实现,帮助开发者从数据准备、模型搭建到训练调优,构建高效的实时语音增强系统,有效提升嘈杂环境下的语音清晰度。 阅读详情
GridView既强大又好用。为了让它更强大、更好用,我们来写一个继承自GridView的控件。
[索引页]
[源码下载]


扩展GridView控件(7) - 行的指定复选框选中时改变行的样式


作者: webabcd


/* 正式版的实现 开始 */

介绍
扩展GridView控件:
行的指定复选框选中的时候改变该行的样式,行的指定复选框取消选中的时候恢复该行的样式

使用方法(设置CheckedRowCssClass复合属性):
CheckBoxID - 模板列中 数据行的复选框ID
CssClass - 选中的行的 CSS 类名


关键代码
js
/*行的指定复选框选中时改变行的样式 开始*/
var  yy_sgv_crGridView_pre  =   new  Array();  //  cs中动态向其灌数据(GridView内控件ID的前缀数组)
var  yy_sgv_crCheckbox_post  =   new  Array();  //  cs中动态向其灌数据(数据行的复选框ID的后缀数组)
var  yy_sgv_crClassName  =  '';  //  cs中动态向其灌数据(css 类名)

var  yy_sgv_crCheckbox  =   new  Array();  //  Checkbox数组
var  yy_sgv_crCssClass  =   new  Array();  //  css 类名数组

function  yy_sgv_changeCheckedRowCssClass(obj, cssClass, enableChangeMouseOverCssClass)
{
/// <summary>数据行的指定复选框选中行时改变行的样式</summary>

    
if (yy_sgv_crClassName == '') return;
    
    
var objChk = obj;
    
var objTr = obj;
    
    
do
    
{
        objTr 
= objTr.parentNode;
    }
 
    
while (objTr.tagName != "TR")
    
    
if (objChk.checked)
    
{
        yy_sgv_crCheckbox.push(objChk.id);
        
if (yy_sgv_originalCssClassName != '' && enableChangeMouseOverCssClass)
        
{
            yy_sgv_crCssClass.push(yy_sgv_originalCssClassName);
        }

        
else
        
{
            yy_sgv_crCssClass.push(objTr.className);
        }

            
        objTr.className 
= cssClass;
        
        
if (enableChangeMouseOverCssClass)
            yy_sgv_originalCssClassName 
= cssClass;
    }

    
else
    
{
        
for (var i=0; i<yy_sgv_crCheckbox.length; i++)
        
{
            
if (yy_sgv_crCheckbox[i] == objChk.id)
            
{
                objTr.className 
= yy_sgv_originalCssClassName = yy_sgv_crCssClass[i];
                yy_sgv_crCheckbox.splice(i, 
1);
                yy_sgv_crCssClass.splice(i, 
1);
                
                
break;
            }

        }

    }

}


function  yy_sgv_crCheck(e) 
{
/// <summary>单击数据行的复选框时</summary>

    
var evt = e || window.event; // FF || IE
    var obj = evt.target || evt.srcElement  // FF || IE

    yy_sgv_changeCheckedRowCssClass(obj, yy_sgv_crClassName, 
true)
}


function  yy_sgv_crListener()
{
/// <summary>监听所有数据行的复选框的单击事件</summary>

    
var elements =  document.getElementsByTagName("INPUT");
    
    
for (i=0; i< elements.length; i++) 
    
{       
        
if (elements[i].type == 'checkbox') 
        
{
            
for (j=0; j<yy_sgv_crGridView_pre.length; j++)
            
{
                
if (elements[i].id.yy_sgv_startsWith(yy_sgv_crGridView_pre[j]) 
                    
&& elements[i].id.yy_sgv_endsWith(yy_sgv_crCheckbox_post[j]))
                
{
                    yy_sgv_addEvent(elements[i], 'click', yy_sgv_crCheck); 
                    
break;
                }

            }

        }

    }
    
}

   
if  (document.all)
{
    window.attachEvent('onload', yy_sgv_crListener)
}

else
{
    window.addEventListener('load', yy_sgv_crListener, 
false);
}

/*行的指定复选框选中时改变行的样式 结束*/

c#
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 CheckedRowCssClassFunction : ExtendFunction
    
{
        
/// <summary>
        
/// 构造函数
        
/// </summary>

        public CheckedRowCssClassFunction()
            : 
base()
        
{

        }


        
/// <summary>
        
/// 构造函数
        
/// </summary>
        
/// <param name="sgv">SmartGridView对象</param>

        public CheckedRowCssClassFunction(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 = "";
            scriptString 
+= String.Format("yy_sgv_crGridView_pre.push('{0}');", Helper.Common.GetChildControlPrefix(this._sgv));
            scriptString 
+= String.Format("yy_sgv_crCheckbox_post.push('{0}');", this._sgv.CheckedRowCssClass.CheckBoxID);
            scriptString 
+= String.Format("yy_sgv_crClassName = '{0}';", this._sgv.CheckedRowCssClass.CssClass);

            
// 注册向数组中添加成员的脚本
            if (!this._sgv.Page.ClientScript.IsClientScriptBlockRegistered(String.Format("yy_sgv_checkedRowCssClass_{0}", this._sgv.ClientID)))
            
{
                
this._sgv.Page.ClientScript.RegisterClientScriptBlock
                (
                    
this._sgv.GetType(),
                    String.Format(
"yy_sgv_checkedRowCssClass_{0}", this._sgv.ClientID),
                    scriptString,
                    
true
                );
            }

        }

    }

}


/* 正式版的实现 结束 */


/* 测试版的实现 开始 */

介绍
在GridView中如果每行都有复选框的话,选中了某个复选框则修改该复选框所在行的样式,这是经常要用到的功能,因此我们来扩展一下GridView控件。


控件开发
1、新建一个继承自GridView的类。
/// <summary>
/// 继承自GridView
/// </summary>

[ToolboxData( @" <{0}:SmartGridView runat='server'></{0}:SmartGridView> " )]
public   class  SmartGridView : GridView
{
}

2、新建一个ChangeRowCSSByCheckBox实体类,有两个属性
using  System;
using  System.Collections.Generic;
using  System.Text;

using  System.ComponentModel;

namespace  YYControls.SmartGridView
{
    
/// <summary>
    
/// 通过行的CheckBox的选中与否来修改行的样式
    
/// 实体类
    
/// </summary>

    [TypeConverter(typeof(ExpandableObjectConverter))]
    
public class ChangeRowCSSByCheckBox
    
{
        
private string _checkBoxID;
        
/// <summary>
        
/// 根据哪个ChecxBox来判断是否选中了行,指定该CheckBox的ID
        
/// </summary>

        [
        Description(
"根据哪个ChecxBox来判断是否选中了行,指定该CheckBox的ID"),
        Category(
"扩展"),
        DefaultValue(
""),
        NotifyParentProperty(
true)
        ]
        
public string CheckBoxID
        
{
            
get { return _checkBoxID; }
            
set { _checkBoxID = value; }
        }


        
private string _cssClassRowSelected;
        
/// <summary>
        
/// 选中行的样式的 CSS 类名
        
/// </summary>

        [
        Description(
"选中行的样式的 CSS 类名"),
        Category(
"扩展"),
        DefaultValue(
""),
        NotifyParentProperty(
true)
        ]
        
public string CssClassRowSelected
        
{
            
get { return _cssClassRowSelected; }
            
set { _cssClassRowSelected = value; }
        }


        
/// <summary>
        
/// ToString()
        
/// </summary>
        
/// <returns></returns>

        public override string ToString()
        
{
            
return "ChangeRowCSSByCheckBox";
        }

    }

}


3、在继承自GridView的类中加一个复杂对象属性,该复杂对象就是第2步创建的那个ChangeRowCSSByCheckBox
         private  ChangeRowCSSByCheckBox _changeRowCSSByCheckBox;
        
/// <summary>
        
/// 通过行的CheckBox的选中与否来修改行的样式
        
/// </summary>

        [
        Description(
" 通过行的CheckBox的选中与否来修改行的样式 " ),
        Category(
" 扩展 " ),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
        PersistenceMode(PersistenceMode.InnerProperty)
        ]
        
public   virtual  ChangeRowCSSByCheckBox ChangeRowCSSByCheckBox
        
{
            
get
            
{
                
if (_changeRowCSSByCheckBox == null)
                
{
                    _changeRowCSSByCheckBox 
= new ChangeRowCSSByCheckBox();
                }

                
return _changeRowCSSByCheckBox;
            }

        }

4、新建一个JavaScriptConstant类,把我们要用到的javascript存在一个常量里
using  System;
using  System.Collections.Generic;
using  System.Text;

namespace  YYControls.SmartGridView
{
    
/// <summary>
    
/// javascript
    
/// </summary>

    public class JavaScriptConstant
    
{
        
internal const string jsChangeRowClassName = @"<script type=""text/javascript"">
        //<![CDATA[
        function yy_ChangeRowClassName(id, cssClass, isForce)
        {
            objRow = document.getElementById(id);
            // 如果row的yy_selected属性是'false'或者没有yy_selected属性或者要求强制设置
            // 那么修改该行的className
            if (!objRow.attributes['yy_selected'] || objRow.attributes['yy_selected'].value == 'false' || isForce == true)
            {
                document.getElementById(id).className = cssClass;
            }
        }
        // 设置行的yy_selected属性
        function yy_SetRowSelectedAttribute(id, bln)
        {
            document.getElementById(id).attributes['yy_selected'].value = bln;
        }
        // 以id结尾的CheckBox执行两次click事件
        function yy_DoubleClickCheckBox(id)
        {
            var allInput = document.all.tags('INPUT');
       for (var i=0; i < allInput.length; i++) 
       {
           if (allInput[i].type == 'checkbox' && allInput[i].id.endWith('checkitem'))
            {
                    // 触发click事件而不执行yy_ClickCheckItem()函数
                    isInvokeClickCheckItem = false;
              allInput[i].click();
                    isInvokeClickCheckItem = false;
                    allInput[i].click();
          }     
       }

        }
        String.prototype.endWith = function(oString){   
            var reg = new RegExp(oString + ""$"");   
            return reg.test(this);
        }  
        //]]>
        </script>
";
    }

}


5、重写OnPreRender方法,注册上面那段客户端脚本
         /// <summary>
        
/// OnPreRender
        
/// </summary>
        
/// <param name="e"></param>

         protected   override   void  OnPreRender(EventArgs e)
        
{
            
base.OnPreRender(e);

            
if ((!String.IsNullOrEmpty(ChangeRowCSSByCheckBox.CheckBoxID) 
                
&& !String.IsNullOrEmpty(ChangeRowCSSByCheckBox.CssClassRowSelected))
                
|| !String.IsNullOrEmpty(CssClassMouseOver))
            
{
                
// 注册实现改变行样式的客户端脚本
                if (!Page.ClientScript.IsClientScriptBlockRegistered("jsChangeRowClassName"))
                
{
                    Page.ClientScript.RegisterClientScriptBlock(
                        
this.GetType(),
                        
"jsChangeRowClassName", JavaScriptConstant.jsChangeRowClassName
                        );
                }

                
// 注册调用双击CheckBox函数的客户端脚本
                if (!Page.ClientScript.IsStartupScriptRegistered("jsInvokeDoubleClickCheckBox"))
                
{
                    Page.ClientScript.RegisterStartupScript(
                        
this.GetType(),
                        
"jsInvokeDoubleClickCheckBox", @"<script type=""text/javascript"">yy_DoubleClickCheckBox();</script>"
                        );
                }

            }

        }

6、重写OnRowDataBound以通过调用相关的javascript函数实现我们想要的功能。
         /// <summary>
        
/// OnRowDataBound
        
/// </summary>
        
/// <param name="e"></param>

         protected   override   void  OnRowDataBound(GridViewRowEventArgs e)
        
{
            
if (e.Row.RowType == DataControlRowType.DataRow)
            
{
                
if (!String.IsNullOrEmpty(ChangeRowCSSByCheckBox.CheckBoxID) && !String.IsNullOrEmpty(ChangeRowCSSByCheckBox.CssClassRowSelected))
                
{
                    
foreach (TableCell tc in e.Row.Cells)
                    
{
                        
// 如果发现了指定的CheckBox
                        if (tc.FindControl(ChangeRowCSSByCheckBox.CheckBoxID) != null)
                        
{
                            CheckBox chk 
= tc.FindControl(ChangeRowCSSByCheckBox.CheckBoxID) as CheckBox;
                            
string cssClassUnchecked = "";

                            
// 根据RowState的不同,取消行的选中后<tr>的不同样式(css类名)
                            switch (e.Row.RowState)
                            
{
                                
case DataControlRowState.Alternate:
                                    cssClassUnchecked 
= base.AlternatingRowStyle.CssClass;
                                    
break;
                                
case DataControlRowState.Edit:
                                    cssClassUnchecked 
= base.EditRowStyle.CssClass;
                                    
break;
                                
case DataControlRowState.Normal:
                                    cssClassUnchecked 
= base.RowStyle.CssClass;
                                    
break;
                                
case DataControlRowState.Selected:
                                    cssClassUnchecked 
= base.SelectedRowStyle.CssClass;
                                    
break;
                                
default:
                                    cssClassUnchecked 
= "";
                                    
break;
                            }


                            
// 给行增加一个yy_selected属性,用于客户端判断行是否是选中状态
                            e.Row.Attributes.Add("yy_selected", "false");

                            
// 添加CheckBox的click事件的客户端调用代码
                            string strOnclickScript = "";
                            
if (!String.IsNullOrEmpty(chk.Attributes["onclick"]))
                            
{
                                strOnclickScript 
+= chk.Attributes["onclick"];
                            }

                            strOnclickScript 
+= ";if (this.checked) "
                                
+ "{yy_ChangeRowClassName('" + e.Row.ClientID + "', '" + ChangeRowCSSByCheckBox.CssClassRowSelected + "', true);"
                                
+ "yy_SetRowSelectedAttribute('" + e.Row.ClientID + "', 'true')} "
                                
+ "else {yy_ChangeRowClassName('" + e.Row.ClientID + "', '" + cssClassUnchecked + "', true);"
                                
+ "yy_SetRowSelectedAttribute('" + e.Row.ClientID + "', 'false')}";
                            chk.Attributes.Add(
"onclick", strOnclickScript);

                            
break;
                        }

                    }

                }

            }


            
base.OnRowDataBound(e);
        }



控件使用
添加这个控件到工具箱里,然后拖拽到webform上,设置CheckBoxID属性为模板列的项复选框的ID,CssClassRowSelected属性设置为选中行的样式的CSS类名,则可以实现改变通过CheckBox选中的行的样式的功能。
ObjData.cs
using  System;
using  System.Data;
using  System.Configuration;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

using  System.ComponentModel;

/// <summary>
/// OjbData 的摘要说明
/// </summary>

public   class  OjbData
{
    
public OjbData()
    
{
        
//
        
// TODO: 在此处添加构造函数逻辑
        
//
    }


    [DataObjectMethod(DataObjectMethodType.Select, 
true)]
    
public DataTable Select()
    
{
        DataTable dt 
= new DataTable();
        dt.Columns.Add(
"no", typeof(string));
        dt.Columns.Add(
"name", typeof(string));

        
for (int i = 0; i < 30; i++)
        
{
            DataRow dr 
= dt.NewRow();
            dr[
0] = "no" + i.ToString().PadLeft(2, '0');
            dr[
1] = "name" + i.ToString().PadLeft(2, '0');

            dt.Rows.Add(dr);
        }


        
return dt;
    }

}


Default.aspx
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default"  %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head  runat ="server" >
    
< title > SmartGridView </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
        
< div >
            
< yyc:SmartGridView  ID ="SmartGridView1"  runat ="server"  DataSourceID ="ObjectDataSource1"
                AutoGenerateColumns
="false" >
                
< Columns >
                    
< asp:TemplateField >
                        
< itemtemplate >
                            
<% # Container.DataItemIndex + 1  %>
                         
</ itemtemplate >
                    
</ asp:TemplateField >
                    
< asp:TemplateField  ItemStyle-Width ="100px" >
                        
< itemtemplate >
                            
< asp:checkbox  id ="checkitem"  runat ="server"   />
                        
</ itemtemplate >
                    
</ asp:TemplateField >
                    
< asp:BoundField  DataField ="no"  HeaderText ="序号"   />
                    
< asp:BoundField  DataField ="name"  HeaderText ="名称"   />
                
</ Columns >
                
< ChangeRowCSSByCheckBox  CheckBoxID ="checkitem"  CssClassRowSelected ="SelectedRow"   />
            
</ yyc:SmartGridView >
            
< asp:ObjectDataSource  ID ="ObjectDataSource1"  runat ="server"  SelectMethod ="Select"
                TypeName
="OjbData" ></ asp:ObjectDataSource >
        
</ div >
    
</ form >
</ body >
</ html >

/* 测试版的实现 结束 */


OK
[源码下载] 
【IPAM】Netbox docker模式版本升级 NETBOX 是一个开源的网络资源管理系统,主要用于管理 IP 地址、机架、设备、接口等网络资源信息。下面是 NETBOX 的功能、优点和缺点的详细介绍。 阅读详情

相关推荐

FDTD仿真进阶:液晶偏振调控与双折射效应全解析

本文深入解析了在Lumerical FDTD仿真中如何对液晶材料进行偏振调控与双折射效应建模。通过单轴液晶和螺旋扭曲液晶(TN-LCD)两大实战案例,详细阐述了从各向异性材料参数设置、LC网格属性配置到偏振椭圆分析的全流程,帮助工程师精准模拟液晶的光开关行为,优化如显示器等器件的光学性能。

chair的专栏 745

DevExpress中GridControl中实现checkbox多行选中

DevExpress中GridControl中实现checkbox多行选中 先看一下效果吧! 11  12  13为我选中的行的主键号 实现以上效果进行批量修改 删除的做法 首先添加一个正常的gridcontrol 绑定数据列 然后插入一个空白列 设置如下 更改一下属性   在我们要绑定的容器中添加一个新列 我用的是DataTable 在DataTable中添加一个新列代码如下 ...

LUOCHENLONG的专栏 2752

Python实战:基于PyG和Stable-Baselines3复现柔性车间调度算法(附数据集)

本文提供了一份基于图神经网络与深度强化学习的柔性车间调度实战指南。通过PyTorch Geometric构建异构图表示车间状态,并利用Stable-Baselines3中的PPO算法训练调度智能体,详细介绍了从环境建模、网络设计到训练评估的完整代码实现,帮助开发者构建可复用的工业级智能调度系统。

ansible6ops的博客 607

Dev的GridControl控件选择框的使用

先介绍环境:VS2010,dev11.2 想要达到的效果:,当单击某一行时前面的选择框选中。 在网上找了不少,但是感觉跟我想的做法很不一样(有很多都是再另外添加一个什么CheckBox,这个我在Dev里是没有找到) 下面介绍我的做法: 首先:GridControl控件要设置为不可编辑状态,在“OptionsBehavior”下将“Editable”的值改为false,否则左键单击不管用。 ...

weixin_30278237的博客 400

SAC安装与相关库文件(.so)的安装

摘要 SAC: Seismic Analysis Code 是用于地震信号处理的一套软件。 本文将介绍SAC的安装,以及安装时遇到的一些问题。主要是一些动态库(lib**.so)找不到的问题。 本文的环境 64位的 Ubuntu 16.04 64位的系统是安装出现问题的主要原因 1. SAC获取与安装 SAC 的安装,只需要解压,然后修改环境变量即可!!!不需要任何编译!!! 1.1. SAC 获取与解压 SAC软件获取地址:http://ds.iris.edu/ds/nodes/dmc/forms/s.

WangCY的博客 4333

解决创建conda环境时Solving environment: failed 和 ResolvePackageNotFound 的错误

环境配置文件是在别的机器上导出的,文件里的软件包是按照导出文件的机器配置的,因此导出的时候,把这些包的详细信息也导了出来,即第二个等号后面跟着的信息,当我们按照这个文件创建环境时,conda就会根据我们机器的配置信息,按照配置文件里包的详细信息,去找这个包,那当然找不到,结果发现“查无此包”,因此也就会报上面的错误。上面找到了问题的所在之处,解决起来就很简单了,只需要在配置文件 environment.yml 中将包的详细信息删除,也就是第二个等号后面的内容。然而升级超级慢不说,也没有解决我的问题。...

番茄炒蛋三分糖 4万+

Gridview的Item嵌套CheckBox的另一种实现,避免了选中错乱等问题

GridView或者ListView的item布局嵌套checkBox选中数据错乱的问题解决。此处实现了GridView 其实listview类似

贵平 2282

Jetson AGX Orin 新手避坑:解决‘找不到nvidia-jetpack包’的完整修复指南

本文详细介绍了Jetson AGX Orin设备在安装JetPack开发套件时遇到的'nvidia-jetpack包缺失'问题的完整解决方案。通过分析问题根源、提供分步修复指南以及系统优化建议,帮助开发者快速解决这一常见问题,充分发挥Jetson AGX Orin的边缘计算性能。

weixin_42520909的博客 460

对DevExpress GridControl控件,实现通过checkbox选中时整行高亮

看了官方7.0版本demo和tutorial,发现没有例子讲对于gridconrol中的gridview通过checkbox选中时,chebox也是高亮显示,而不是变白,同其他单元格一样高亮显示。 代码如下: using System; using System.Drawing; using System.Collections; using System.ComponentMode

cyberzhaohy的专栏 4116

轴承故障诊断领域的论文到底有多水

这个是最让人困惑的,就好像你说自己证明了某个方法更好,但是你却没有交代自己怎么做的,或者说你交代的过程有外行话或者逻辑上的缺陷,但是你就这么给出个结果完事了。由于自己没有足够大的学术交流圈子,为了尽量避免误判,我在原来13篇论文的基础上又读了18篇,这些论文至少都出自中文核心,有一些还有EI的title,事实上近几年能找到的文章也不算多,这些基本能说明问题了。当然,还有更多细节,比如说损失函数你得交代吧,模型超参数得介绍全吧,至少数据集是哪个工况下的得说吧,当你想复现这些论文,关注点在这些地方的时候。

weixin_50642818的博客 3050

SAR合成孔径雷达成像及处理(附带Matlab源代码)

总结:本文介绍了SAR合成孔径雷达的基本原理,并提供了使用Matlab实现SAR成像和处理的源代码示例。然后,在慢时间域进行方位压缩处理,通过计算每个接收通道的延迟和频移,将多次接收的信号叠加得到最终的成像结果。SAR成像的基本原理是通过接收雷达发射的脉冲信号的回波,并利用多次接收的信号进行叠加处理。以多普勒频移校正为例,根据雷达飞行速度和方位角,计算实际的多普勒频率,并对每个接收通道的数据进行频移校正,以消除因目标运动引起的频率偏移。通过调整参数和算法,可以实现不同的SAR成像和处理效果。

ByteJolt的博客 688

GridView自带行选中复选框

后台设置选中状态方法用this.gridView.SelectRow(index); 就这属性找了一天了。。。

FFFAN_KIKI的博客 663

高通开发系列 - Bootloader之lk匹配dtb和dtbo中msm-id和board-id的知识

lk匹配dtb和dtbo中的msm-id和board-id等知识

fulinux的博客 4244

上接扩展GridView控件(7) - 行的指定复选框选中时改变行的样式

5、重写OnPreRender方法,注册上面那段客户端脚本 /// <summary>///OnPreRender/// </summary>/// <param name="e"></param>...

weixin_33681778的博客 156

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

扩展GridView控件 行的指定复选框选中时改变行的样式

GridView既强大又好用。为了让它更强大、更好用,我们来写一个继承自GridView的控件。[索引页][源码下载]扩展GridView控件(7) - 行的指定复选框选中时改变行的样式作者:webabcd/*正式版的实现 开始*/介绍扩展GridView控件:行的指定复选框选中的时候改变该行的样式,行的指定复选框取消选中的时候恢复该行的样式使用方法(设置CheckedRowCss

阿强的一亩三分地,一分耕耘一分收获 1345

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

扩展GridView实现多选(全选)、点击行任意位置选择行、选中变色、添加双击事件等

主要功能: a.隔行色(颜色可自定义) b.点击行任意位置选择行 c.点击已选中行任意位置取消选择 d.选中行变色(颜色可自定义) e.多选全选功能 f.添加双击响应事件 GridView控件功能非常强大,但在具体应用中很多时候无法满足特殊需求。例如我前段时间做自己网站(网站制作学习吧)。在编写后台管理版块期间。由于是文章站,列表页面会比较多。每个列表显示基本一样,功能包括:单击选择一行;单击已经选择的行实现取消选择;被选中的行变色(颜色可以设置);双击可以实现服务器事件处理。如果每个列表都一一去编写,当然

zq9955的博客 1313

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

扩展GridView控件(索引) - 增加多个常用功能

文章索引扩展GridView控件(1) - 鼠标经过行时改变行的样式扩展GridView控件(2) - 复合排序和排序状态提示扩展GridView控件(3) - 根据按钮的CommandName设置其客户端属性扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)扩展GridView控件(5) - 固定指定行、指定列扩展GridView控件(6) - 响应行的单击事件和双击事件扩

lp2007的专栏 3466

GridView控件改变CheckBox选中的行的样式

介绍在GridView中如果每行都有复选框的话,选中了某个复选框则修改该复选框所在行的样式,这是经常要用到的功能,因此我们来扩展一下GridView控件。控件开发1、新建一个继承自GridView的类。 /**////&lt;summary&gt;///继承自GridView///&lt;/summary&gt;[ToolboxData(@"&lt;{0}:SmartGridViewrunat='...

编程资料大全 290

扩展GridView控件(全)——增加10个常用功能

扩展GridView控件(全)——增加10个常用功能 控件开发 扩展GridView控件(一)——鼠标经过行时改变行的样式 控件使用 1、鼠标经过行时改变行的样式 CssClassMouseOver - 鼠标经过行时行的样式的CSS类名 2、给字段标题加上排序状态 设置其SortTip下的4个属性即可 SortAscImage - 升序提示图片 SortAscText

drr789的专栏 1741

更强大的GridView(继承自GridView的控件)(转)

文章索引 扩展GridView控件(0) - 基本架构、增加事件和要点汇总 扩展GridView控件(1) - 鼠标经过行时改变行的样式 扩展GridView控件(2) - 复合排序和排序状态提示 扩展GridView控件(3) - 根据按钮的CommandName设置其客户端属性 扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选) 扩展GridView...

JUDD14273的博客 179

扩展GridView控件--增加选择列

效果演示地址:http://demo.yuefan.net/ GridView是asp.net 2.0中,最常用、最好用的服务器控件之一;但是,为了让它更适应于我们具体的项目,我们很多时候,需要对它进行一些特殊操作。 如,实现如下效果(如果下图看不到,可以到我的百度空间看:扩展GridView控件--增加选择列) 当然,我承认,实现如上效果并不复杂, 1、增加一个模版列放...

324
上一篇: [翻译]asp.net ajax xml-script教程(二)
下一篇: [翻译]asp.net ajax xml-script教程(三)
webabcd
博客等级 码龄17年 28粉丝 911原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值