Button1.Attributes.Add()方法小结

本文介绍如何在ASP.NET应用中实现密码验证功能,包括前后端密码一致性检查及数据库交互过程。通过示例代码展示了如何使用JavaScript进行前端验证,并在服务器端验证用户输入的原始密码。
//首先要在PageLoad()事件中注册属性

    protected void Page_Load(object sender, EventArgs e)     {         if (!IsPostBack)         {             Button1.Attributes.Add("onclick", "return checkSame()");//为Button1添加onclick()事件 ,Button为服务器控件         }//注意:checkSame()这是一个写在aspx面页的js函数,必须有返回值,为:true 或 false     } //接着写Button1的onclick事件,如果刚才的checkSame()返回为true则招行下面的事件,否则不执行

    protected void Button1_Click(object sender, ImageClickEventArgs e)     {         SqlParameter[] Params = new SqlParameter[2];         Params[0] = dbs.MakeInParams("@uid", SqlDbType.VarChar, 10, Session["Uid"].ToString());         Params[1] = dbs.MakeOutParms("@Upwd", SqlDbType.VarChar, 10);         if (dbs.ExecuteNonQuery(CommandType.StoredProcedure, "selectPwd", Params) > 0)         {             string userPwd = Params[1].Value.ToString();             if (userPwd != this.old_pwd.Text)             {                 Response.Write("<script>alert('原始密码错误!')</script>");             }             else             {                            }         }         else         {             ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('操作失败!')</script>");         }

    } //呵呵。。再写一个js试例吧       function checkSame()     {       var Obj1=document.getElementById ("new_pwd").value;       var Obj2=document.getElementById ("re_new_pwd").value;             if(Obj1!=Obj2)        {           alert("两次密码输入不一致!");           document.getElementById("new_pwd").focus();           return false;        }        else        {          return true;        }     } //明白了吗。。这是一个用来判断两次密码输入是否一致的函数    
<think>好的,用户的问题是关于在DynamicsCRM插件注册过程中为sdkmessageprocessingstep实体添加Filtering Attributes属性。首先,我需要确认用户对DynamicsCRM插件开发的基本概念是否了解,但根据问题本身,用户可能已经有一定的开发经验,需要具体操作步骤。首先,Filtering Attributes在插件中的作用是限制插件仅在特定属性变更时触发,这有助于优化性能。用户可能在编写插件时需要精确控制触发条件,避免不必要的执行。 接下来,我需要回忆如何在代码中设置FilteringAttributes。通常,在创建插件步骤时,通过PluginRegistrationTool或C#代码配置。在C#中,当创建Entity对象实例化sdkmessageprocessingstep实体时,需要设置"filteringattributes"属性,其值为用逗号分隔的属性名字符串。然后,要验证是否正确应用。比如,在PostOperation阶段,检查是否只有指定的属性变更时插件才会触发。可能还需要注意不同消息类型(如Update、Create)对FilteringAttributes的影响,比如Create消息可能不需要这个设置,而Update则需要。 此外,用户可能遇到的问题是属性名拼写错误,或者未正确设置消息阶段,导致配置无效。需要提醒用户检查这些常见错误。最后,生成相关问题时,要考虑用户可能的后续需求,比如如何调试插件、如何配置其他属性,或者性能优化的方法。这些相关问题可以帮助用户更全面地理解和应用Filtering Attributes。</think>在Dynamics CRM插件开发中,为`SdkMessageProcessingStep`实体添加Filtering Attributes属性需要以下步骤: ### 步骤1:理解Filtering Attributes的作用 Filtering Attributes用于指定触发插件执行的字段变更列表,仅当这些字段发生变更时才会触发插件执行,这对Update操作尤为重要[^1]。 ### 步骤2:创建Entity对象并设置属性 ```csharp Entity step = new Entity("sdkmessageprocessingstep"); step["filteringattributes"] = "name,accountnumber,revenue"; // 逗号分隔的字段名 step["name"] = "自定义插件步骤"; step["eventhandler"] = new EntityReference("plugintype", pluginId); step["stage"] = new OptionSetValue(40); // PostOperation阶段 step["message"] = new EntityReference("sdkmessage", messageId); ``` ### 步骤3:验证配置 在插件注册工具中检查新建的步骤: 1. 打开`Plugin Registration Tool` 2. 展开插件步骤 3. 右键点击步骤选择`Update` 4. 查看`Filtering Attributes`字段是否包含指定字段 ### 注意事项 1. **消息类型限制**:仅`Update`消息支持此属性 2. **字段存在性验证**:字段名必须存在于目标实体的元数据中 3. **性能优化**:建议控制在5-10个关键字段,过多会降低筛选效果 4. **部署方式**:推荐使用解决方案包进行迁移 $$ \text{触发条件} = \begin{cases} \text{true} & \text{当}\ \Delta(field) \in \{filtering\ attributes\} \\ \text{false} & \text{其他情况} \end{cases} $$
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值