如何显示来自c#

时间:2018-01-15 15:55:29

标签: c# html asp.net

我想在点击一个按钮时打开一个确认窗口(比如javascript中的confirm()),如果它显示YES,我想做一些c#代码。 我怎么能这样做?

编辑:这是我的代码。

SCRIPT:

<script type = "text/javascript">
    function Confirm() {
        var confirm_value = document.createElement("INPUT");
        confirm_value.type = "hidden";
        confirm_value.name = "confirm_value";
        if (confirm("Do you want to save data?")) {
            confirm_value.value = "Yes";
        } else {
            confirm_value.value = "No";
        }
        document.forms[0].appendChild(confirm_value);
    }
</script>

我的HTML代码的其余部分:

<asp:GridView ID="gvUsers" runat="server" AutoGenerateColumns="false" CssClass="Table">
<Columns>
    <asp:BoundField DataField="ID" HeaderText="Client ID" />
    <asp:BoundField DataField="Name" HeaderText="שם הלקוח" />
    <asp:BoundField DataField="PropertyLocation" HeaderText="מיקום הנכס" />
    <asp:BoundField DataField="PropertyType" HeaderText="סוג הנכס" />
    <asp:BoundField DataField="PropertyArea" HeaderText="שטח הנכס" />
    <asp:BoundField DataField="WorkType" HeaderText="סוג העבודה" />
    <asp:BoundField DataField="Remarks" HeaderText="שדה חופשי" />
    <asp:BoundField DataField="E-mail" HeaderText="מייל" />
    <asp:BoundField DataField="Phone" HeaderText="טלפון" />
    <asp:BoundField DataField="Password" HeaderText="סיסמא" />
    <asp:BoundField DataField="Status" HeaderText="סטטוס" />

    <asp:TemplateField>
        <ItemTemplate>


                <asp:ImageButton ID="btnDelete" runat="server"  ImageUrl="~/Images/ic_delete.png" OnClick="btnDelete_Click" ToolTip="מחיקה" OnClientClick="Confirm()" />
                <asp:ImageButton ID="btnTransfer" runat="server" ImageUrl="~/Images/ic_transfer.png" OnClick="btnTransfer_Click" ToolTip="העברה למעקב" />

        </ItemTemplate>
    </asp:TemplateField>
</Columns>
</asp:GridView> 

我的C#代码背后(当删除按钮时):

protected void btnDelete_Click(object sender, ImageClickEventArgs e)
{
    string confirmValue = Request.Form["confirm_value"];
    if (confirmValue == "Yes")
        Response.Redirect("Index.aspx", true);

    //connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True";
    //connection = new SqlConnection(connectionString);
    //commandString = "SELECT * FROM [Users]";
    //command = new SqlCommand(commandString, connection);
}

当我点击确认窗口中的一个选项时,我收到此错误:

  

无效的回发或回调参数。使用配置或&lt;%@ Page EnableEventValidation =“true”%&gt;启用事件验证在一个页面中。出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。

1 个答案:

答案 0 :(得分:2)

首先,你需要一个像这样的隐藏字段:

<input type="hidden" runat="server" id="AreYouSureBox" />

然后添加按钮:

<asp:Button runat="server" OnClientClick="AreYouSureBox()" OnClick="CSharpMethod" />

您网页上的对话框的JavaScript:

function AreYouSureBox() {
    document.getElementById("areYouSure").value = confirm('Are you sure?');
}

然后用你的C#方法在你的后端运行:

protected void CSharpMethod(object sender, EventArgs E)
{
    var dialogResult = Boolean.Parse(areYouSure.Value);

    // Put your code here
}