C# ASP.NET Webforms复选框事件发送参数
我基本上有很多复选框调用相同的函数。为了确定每个函数应该触发的操作,我考虑为将要触发的函数传递一个参数 我的复选框如下所示:C# ASP.NET Webforms复选框事件发送参数,c#,asp.net,checkbox,C#,Asp.net,Checkbox,我基本上有很多复选框调用相同的函数。为了确定每个函数应该触发的操作,我考虑为将要触发的函数传递一个参数 我的复选框如下所示: <asp:CheckBox ID="checkBoxRegul" runat="server" CssClass="" Visible="false" OnCheckedChanged='checkBoxRegularizarChangedEvent' AutoPostBack="True" /> protected void checkBoxRegular
<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发送和接收信息
谢谢 对不起,您不能,没有任何财产来存放您想要的东西
您需要将每个复选框映射到不同的事件处理程序,或者在checkboxchangedevent中检查复选框的值
或者。。。正如Tim所说,您可以检查sender类
没有“正确”的答案,这取决于你的需要
希望能有所帮助。这并不简单,但可行。EventArgs(e)不能直接存储附加信息,但您可以使用包含附加信息的自定义事件创建自定义控件 步骤1:创建一个继承自
EventArgs
(CheckBoxEventArgs.cs
)的CheckBoxEventArgs
类。添加公共属性以保存所需的信息
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" />
一种方法是检查
发送者的ID
,一旦将其转换为正确的类型,就可以执行此操作。根据ID,您可以决定要做什么。不过,我不认为您可以直接将自定义信息放入EventArgs
参数中。我不确定您在这里做什么,但从我收集的信息来看,您应该在寻找javascript解决方案。
//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);
}
}
}
<%@ Register src="CustomCheckBox.ascx" tagname="CustomCheckBox" tagprefix="uc1" %>
...
<uc1:CustomCheckBox ID="CustomCheckBox1" runat="server" AutoPostBack="True" OnCheckChanged="CustomCheckBox1_OnCheckChanged" ValueOne="one" ValueTwo="two"/>
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
}
}