C# 如何知道一个按钮被点击了多少次?
就像我希望用户只发送一次信息..实际上通过电子邮件发送了一个链接,该链接打开了一个带有文本框的页面..在该页面中,用户通过单击按钮发送一些信息..现在我不希望用户反复使用该链接发送信息。。。 那我该怎么做呢?希望这些问题不会让人困惑C# 如何知道一个按钮被点击了多少次?,c#,asp.net,C#,Asp.net,就像我希望用户只发送一次信息..实际上通过电子邮件发送了一个链接,该链接打开了一个带有文本框的页面..在该页面中,用户通过单击按钮发送一些信息..现在我不希望用户反复使用该链接发送信息。。。 那我该怎么做呢?希望这些问题不会让人困惑 bool isButtonClicked = false; // this will be held in global 在按钮单击事件集isButtonClick=true button1_Click() { if(!isButtonClicked)
bool isButtonClicked = false; // this will be held in global
在按钮单击事件集isButtonClick=true代码>
button1_Click()
{
if(!isButtonClicked)
{
// which means button is clicked once, put your action code here
isButtonClicked = true;
}
}
注意,前面的伪代码:
if (MyButton.Enabled) {
MyButton.Enabled = false;
SendInfo();
}
从您的描述来看,它看起来像是一个调查页面,您希望确保每个用户只提交一份资料。这可以通过为每个用户创建一个唯一标识符,然后在链接/表单中包含该值来实现。在服务器端,您必须忽略具有相同标识符的重复提交(或选择最后一个)。在我看来,他似乎希望每个用户使用该表单发送一次信息
如果我的解释正确,您可以通过一个唯一的id发送每封电子邮件,并通过表单数据(以及用户的电子邮件)发送
在服务器上,您将有一个数据库表,该表将每个电子邮件映射为一个唯一的id。每当用户填写表单时,您都会对照电子邮件检查id,并在表中设置一列,指示用户已随表单发送数据
接收数据时要做的第一件事是检查数据库并检查数据是否已发送。如果没有,请接受数据,否则您可能会显示错误消息或其他信息。有很多方法可以做到这一点。。。。例如:
int _counter = 0;
void btnCounter_click()
{
_counter++;
}
编辑:
只需禁用按钮,发送数据后,..在用户第一次单击按钮时,放置一个隐藏字段并为其赋值。因此,请检查隐藏字段的值并进行比较。根据您希望的严格程度,您可以在用户第一次单击响应时向其添加cookie,这表明他们已经单击了,然后忽略如果在后续请求中存在该cookie,则单击任何其他内容。此外,如果他们有此cookie,则可以在查看页面时禁用该控件。否则,如果他们是登录用户,您可以将单击的记录存储在数据库中,并通过检查数据库中此用户单击此控件的记录来拒绝后续的单击
下面是一些要演示的代码:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
var ctrl = sender as WebControl;
if (!HasButtonBeenClicked(ctrl.ClientID))
{
Response.Write("Click accepted");
}
else
{
Response.Write("You have clicked this already!");
}
}
private bool HasButtonBeenClicked(string controlId)
{
if (Request.Cookies["has_clicked_"+ controlId] != null)
{
return true;
}
var cookie = new HttpCookie("has_clicked_" + controlId);
Response.Cookies.Add(cookie);
return false;
}
}
因此,您希望用户只单击按钮一次?添加了您要求的代码。更简单(但不太可靠)的方法是将其存储在会话中。用户重新发送电子邮件的唯一方法是清除cookies@serkanhekimoglu:这正是OP提出的问题:“如何知道一个按钮被点击了多少次?”@Toad是的,有趣的问题:)然后他问“现在我不想让用户反复使用该链接发送信息”