1

我没有得到这个模态窗口/javascript的东西,我有点菜鸟我发现了很多关于这个拖网的东西但是当你缺乏提出正确问题的经验时很难找到答案。也没有跟上所有的行话

System.windows.froms.messagebox 在 web 情况下不起作用.. 我发现了很多,,, 这是一个 Intranet 应用程序

如何以类似于声明 DialogResult myVar = 的方式评估 javascript 函数 OpenDialogue() 的结果

我有一个像这样的按钮事件处理程序

protected void but_Comds(object sender, EventArgs e)
        {
            GridViewRow row = results.SelectedRow;
            string crn = Convert.ToString(row.Cells[13].Text);

            if (sender == but_crn)
            {
                checkData(row, crn);
            }
        }

然后一些方法

        private void checkData(GridViewRow row, string crn)
        {
            if (stuff)
            {
                DialogResult checkCrn = System.Windows.Forms.MessageBox.Show("a mesage",
                "Data Check",
                MessageBoxButtons.YesNoCancel); 


                if (checkCrn == DialogResult.No)
                {
                    Do stuff;
                }
                if (checkCrn == DialogResult.Cancel)
                {
                    Do other stuff;
                }
            }
            else
            {
                Do stuff instead
            }
        }

我可以让对话作为子页面运行得足够容易,但我无法从子页面捕获返回值。我一直在尝试将它包装成一个方法,我可以看到这不起作用,因为 ClientScript.RegisterStartupScript 是无效的。

protected string MsgDialogue()
    {

       Return ClientScript.RegisterStartupScript(this.GetType(),
                    "newWindow", String.Format("<script>OpenDialog();</script>"));


    }

我也在后面的childs代码中尝试了okClicked(object sender, eventargs e)方法,并尝试将变量写入MySession类,然后在checkData(row, crn)方法中获取该变量必须有一些更简单更优雅的方法这样做而不必拖网数千页希望偶然发现它..

这是我在主页上的 javascript

<script type="text/javascript">
    function OpenDialog() {
        // get the control values
        var str1 = 'test';
        // create an array with the values
        var winArgs = new Array(str1);
        var winSettings = 'center:yes;resizable:no;help:no;status:no;dialogWidth:250px;dialogHeight:200px';

        // return the dialog control values after passing them as a parameter
        winArgs = window.showModalDialog('child.aspx', winArgs, winSettings);

        // see if the array is null
        if (winArgs == null) {
            window.alert('no data returned!');
        }
        return winArgs;

    }   
</script>

这是child.aspx

<head runat="server">
    <title></title>
    <base target="_self"/>
    <script type="text/javascript">
        function GetData() {
            // intialize variables and array to empty
           var str1 = '';
           var winArgs = new Array(str1);

            // get the values as arguments and set the controls
            winArgs = window.dialogArguments;
            document.getElementById('TextBox1').value = winArgs[0];            
        }

        function but_ok() {
            window.returnValue = "ok";
            window.close();
        }
        function but_cancel() {
            window.returnValue = "cancel";
            window.close();
        }
        function but_yes() {
            window.returnValue = "yes";
            window.close();
        }
        function but_no() {
            window.returnValue = "no";
            window.close();
        }
</script>
</head>

<body onload="GetData()">

    <form id="form1" runat="server">
    <div>
    <asp:TextBox ID="TextBox1" runat="server" ReadOnly ="true"></asp:TextBox>
    <asp:Button ID="dlg_ok" runat="server" Text=" OK " /> 
    <asp:Button ID="dlg_cancel" runat="server" Text=" Cancel " /> 
    <asp:Button ID="dlg_yes" runat="server" Text=" Yes " />
    <asp:Button ID="dlg_no" runat="server" Text=" No " /> 
    </div>
    </form>
</body>
</html>

和child.aspx。CS

public class child : System.Web.UI.Page
        {
        protected global::System.Web.UI.HtmlControls.HtmlForm form1;
        protected global::System.Web.UI.WebControls.TextBox TextBox1;
        protected global::System.Web.UI.WebControls.Button dlg_ok;
        protected global::System.Web.UI.WebControls.Button dlg_cancel;
        protected global::System.Web.UI.WebControls.Button dlg_yes;
        protected global::System.Web.UI.WebControls.Button dlg_no;


        protected void Page_Load(object sender, EventArgs e)
        {


            if (!this.IsPostBack)
            {
                dlg_ok.Attributes["onclick"] = "javascript:but_ok()";
                dlg_cancel.Attributes["onclick"] = "javascript:but_cancel()";
                dlg_yes.Attributes["onclick"] = "javascript:but_yes()";
                dlg_no.Attributes["onclick"] = "javascript:but_no()";




            }
        }
    }

抱歉,我发布了很多代码,但希望如果你能看到我正在尝试做的事情,那么你可能能够更好地解释我没有得到什么。

4

0 回答 0