gpt4 book ai didi

c# - ASP.NET Webforms Checkbox 事件发送参数

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:59 26 4
gpt4 key购买 nike

我基本上有很多复选框调用相同的功能。为了确定每个人应该触发的操作,我正在考虑为将要触发的函数传递一个参数。

我的复选框是这样的:

<asp:CheckBox ID="checkBoxRegul" runat="server" CssClass="" Visible="false" OnCheckedChanged='checkBoxRegularizarChangedEvent' AutoPostBack="True" />

我的函数是这样的:

protected void checkBoxRegularizarChangedEvent(object sender, EventArgs e)
{
CheckBox cb = (CheckBox)sender;
}

如何通过 EventArgs 发送和接收信息?

谢谢!

最佳答案

这并不简单,但它是可行的。 EventArgs(e) 不能直接存储附加信息,但您可以使用可以包含附加信息的自定义事件创建自定义控件。

第 1 步:创建一个继承自 EventArgs(CheckBoxEventArgs.cs) 的 CheckBoxEventArgs 类。添加公共(public)属性以保存您需要的信息。

public class CheckBoxEventArgs: EventArgs
{
public string ValueOne { get; set; }
public string ValueTwo { get; set; }

}

第 2 步:将自定义 .ascx 控件添加到您的项目 (CustomCheckBox.ascx)。向 HTML 添加复选框。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CustomCheckBox.ascx.cs" Inherits="CustomControls.CustomCheckBox" %>
<asp:CheckBox ID="chkCheckBox" runat="server" OnCheckedChanged="chkCheckBox_CheckedChanged" AutoPostBack="True" />

自定义代码隐藏如下:

  • 使用自定义事件处理程序定义 CheckChanged 事件
  • 添加属性以存储自定义复选框值
  • 添加文本属性并将值传递给复选框文本
  • 响应 CheckChanged 事件并引发您的自定义事件

//CustomCheckBox.cs

public partial class CustomCheckBox : System.Web.UI.UserControl
{

public event EventHandler<CheckBoxEventArgs> CheckChanged;

public string ValueOne { get; set; }
public string ValueTwo { get; set; }

public string Text
{
get { return chkCheckBox.Text; }
set { chkCheckBox.Text = value; }
}

protected void Page_Load(object sender, EventArgs e)
{
}

protected void chkCheckBox_CheckedChanged(object sender, EventArgs e)
{

if (CheckChanged != null)
{
var args = new CheckBoxEventArgs()
{
ValueOne = this.ValueOne,
ValueTwo = this.ValueTwo
};
CheckChanged(this, args);
}

}

}

第 3 步:将 CustomCheckBox.ascx 添加到您的页面并注册 OnCheckChanged 事件。

<%@ Register src="CustomCheckBox.ascx" tagname="CustomCheckBox" tagprefix="uc1" %>
...
<uc1:CustomCheckBox ID="CustomCheckBox1" runat="server" AutoPostBack="True" OnCheckChanged="CustomCheckBox1_OnCheckChanged" ValueOne="one" ValueTwo="two"/>

将代码添加到代码隐藏页面以响应您的自定义 checkchanged 事件,并使用自定义值(它们可直接从您创建的 customEventArgs (e) 获得)

public partial class PageOne : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void CustomCheckBox1_OnCheckChanged(object sender, CheckBoxEventArgs e)
{
var val1 = e.ValueOne;
var val2 = e.ValueTwo;

//use custom values
}
}

关于c# - ASP.NET Webforms Checkbox 事件发送参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37306474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com