【问题标题】:how to capture javascript var value into asp.net page如何将javascript var值捕获到asp.net页面中
【发布时间】:2012-02-10 04:45:23
【问题描述】:

我有一个asp.net页面,点击按钮(btn1),我想显示消息框,询问用户一个问题“你想覆盖吗?” 带有按钮 "Ok/Overwrite""Cancel" ,根据用户的反应,我将不得不更新我的数据库。

所以我试图使用 Javascript 确认功能来完成它

var r = Confirm('Do you want to overwrite ?)

但现在我必须将此Var r 捕获到我的页面中,以便我可以相应地更新我的数据库 有什么帮助我该怎么做?

【问题讨论】:

  • 你是否想要 2 搜索新代码,而不是我们在 ajaxtoolkit 中有 ajax 确认控件...将其添加到按钮并且代码中不需要更改...
  • 本项目没有ajax工具包。

标签: javascript asp.net .net vb.net


【解决方案1】:

在这种情况下,您不需要将r 的值传递给服务器;你根本不回发。

只要有这样的东西:

<asp:button id="btn1" runat="server" OnClientClick="return confirm('Overwrite?');" OnClick="btn1_Click" Text="Submit" />

如果用户单击“确定”,则页面将返回,您将更新数据库。如果用户点击取消,页面将根本不会回发,您也无需执行任何操作。

【讨论】:

  • 我的详细要求是,一个商店只能分配一个 Pword,现在我有 store 作为下拉菜单和 P word 作为下拉菜单,当用户选择一个商店和 P word 并点击提交然后这个如果该商店已经有另一个 P 词,则按钮首先查看数据库,然后它询问用户“该商店存在另一个 P 词,您要覆盖该 P 词吗?” ,现在如果用户选择 Overwrite,它只会更新 P word 并显示在表格中,否则它会显示以前存在的 Pword。
  • @Swapnilagrawal 我现在看到了整个流程,但答案几乎相同:当您在检查是否存在现有记录后返回页面要求用户确认时,您只需提交表单,如果用户点击“确定”;否则,您不提交表单,因为您应该显示相同的页面而没有任何类型的更改。如果你发布你的整个代码,我可以告诉你怎么做。
【解决方案2】:

这是您的代码:- 在 Net(.aspx) 页面中添加隐藏字段

    <form id="form10" runat="server">

    <asp:HiddenField ID="hdnField" runat="server" Value="false" />
    </form>

表单标签下应添加隐藏字段。此隐藏字段的值最初为“false”。

这是您需要在代码隐藏文件(.cs 文件)中执行的操作

    protected void btnSubmits_Click(object sender, EventArgs e)
    {

     if (hdnField.Value == "false")
            {

                AddJavascriptCode(itemValue); 
            }


        else if (hdnField.Value == "true")
        {

            lblMsg.Text = string.Format("You have entered {0}", itemValue);
            hdnField.Value = "false";
        }
    }

这里是从 OK/Confirm 或 Cancel 按钮捕获响应的代码。

    private void AddJavascriptCode(string itemValue)
    {
        string script = @"<script language=""JavaScript"" type=""text/javascript"">
   window.onload=function()
  {
   var IsConfirm = 1;
   objField = document.getElementById('" + hdnField.ClientID + @"');
   objSubmit = document.getElementById('" + btnSubmit.ClientID + @"');
   IsConfirm = newConfirm('Test','You have entered " + itemValue + @" value. Do you want to overwrite ?',1,1,0);
   if(IsConfirm == true)
  {
  objField.value = 'true';
  objSubmit.click();
  }
  else
 {
  objField.value = 'false';
 }
}
function newConfirm(title,mess,icon,defbut,mods)
{
if (document.all)
{
retVal = confirm(mess);
retVal = (retVal==1)
}
else
{
retVal = confirm(mess);
}
return retVal;
}
</script>";
        Page.ClientScript.RegisterStartupScript(this.GetType(), "Test", script);
    }

}

希望这对你有帮助:)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 2021-03-17
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多