多个按钮调用一个方法
本文关键字:一个 方法 按钮 调用 | 更新日期: 2023-09-27 17:59:30
我正试图根据用户选择的六个按钮中的哪一个,将CSS用户偏好持久化到我的数据库中。为了做到这一点,我试图为每个按钮点击事件分配一个整数值;无论点击哪个,都会将相应的整数作为参数传递给我的数据访问对象,以更新数据库。
我的方法是这样的:
protected void SetCSS(object sender, EventArgs e)
{
Users setCss = new Users();
if (IsPostBack)
{
if (sender.ToString() == "Blue")
{
setCss.StylePreference = 0;
}
else if (sender.ToString() == "Khaki")
{
setCss.StylePreference = 1;
}
else if (sender.ToString() == "Night")
{
setCss.StylePreference = 2;
}
else if (sender.ToString() == "Pink")
{
setCss.StylePreference = 3;
}
else if (sender.ToString() == "White")
{
setCss.StylePreference = 4;
}
else if (sender.ToString() == "Yellow")
{
setCss.StylePreference = 5;
}
setCss.UserLoginName = Session["eMail"].ToString(); // current user
setCss.SetStylePreference(setCss.UserLoginName, setCss.StylePreference);
}
在每个按钮的点击事件中:
protected void btnBlue_Click(object sender, EventArgs e)
{
SetCSS(btnBlue, null);
}
protected void btnKhaki_Click(object sender, EventArgs e)
{
SetCSS(btnKhaki, null);
}
等等。。。
我在发件人对象上放了一块手表,当选择粉红色按钮时,分配给发件人的值显示{Text="粉红色"}然而,当我在SetCSS方法中逐步执行if语句时else if(sender.ToString()=="粉红色")该条件不满足,程序没有将样式首选项设置为3,而是转到语句的末尾,最后总是为属性赋值0。
我做错了什么?非常感谢您的帮助。。。
您需要使用sender.Id.ToString()
在ASP.NET按钮上调用sender.ToString()
将返回"System.Web.Ui.button"或类似的内容。
粘贴与你如何设置按钮相关的代码,我会进一步澄清我的答案,因为你可能需要Id或Text,这取决于你如何在按钮上设置名称。
实际上,您可以将此代码重构得简单得多。
您应该将所有按钮上的Click
事件映射到SetCSS()
。有很多分散的方法只包装调用是没有用的。
更改if/else块以检查发件人。文本
if (sender.Text.ToString() == "Blue")
{
setCss.StylePreference = 0;
}
并对其余语句执行相同操作。