【问题标题】:Refresh parent dropdownlist from popup in asp.net c#从asp.net c#中的弹出窗口刷新父下拉列表
【发布时间】:2014-10-29 14:28:18
【问题描述】:

我的父页面中有一个 dropdwnlist 控件 - ASP.NET C#,单击按钮时会弹出一个窗口以向控件添加新值。

[+]

在弹出页面 - 保存按钮中,我有以下代码:

Response.Write("<script>opener.loadOptionLandlord('" + stid  + "','" + strLandlorconn_dbame + "');</script>");
Response.Write("<script>window.close();</script>");

其中 loadOptionLandlord 是我父页面中的一个函数:

function loadOptionLandlord(val,txt)
        {
            var opt = document.createElement('<option value="'+ val +'">');
            opt.innerText = txt;
            var sCtrl = document.getElementById('<%= ddlLandlord.ClientID %>');

            sCtrl.options[sCtrl.options.length] = new Option(txt, val, false, true);

        }

值正在保存到数据库并且弹出窗口正在关闭,但是下拉列表中没有刷新新添加的数据。 这适用于 IE,但不适用于 Chrome。

请帮忙..

【问题讨论】:

  • 只有下拉列表控件需要刷新
  • 检查您的控制台是否有任何错误?

标签: javascript c# asp.net popupwindow


【解决方案1】:

如下更改您的loadOptionLandlord

function loadOptionLandlord(val,txt)
        {
            var opt = document.createElement("option");            
            var sCtrl = document.getElementById('<%= ddlLandlord.ClientID %>').options.add(opt);
            opt.text = txt;
            opt.value = val;
}

【讨论】:

    【解决方案2】:

    你能检查一下这个功能吗?

    function loadOptionLandlord(val,txt)
            {
                // Those create element not needed and its a wrong 
                // because you directly add option to select
                //var opt = document.createElement('<option value="'+ val +'">');
               // opt.innerText = txt;
                var sCtrl = document.getElementById('<%= ddlLandlord.ClientID %>');
    
                sCtrl.options[sCtrl.options.length] = new Option(txt, val, false, true);
    
            }
    

    这里是在下拉JS BIN上添加选项的示例js

    【讨论】:

    • 不,它不工作..实际上相同的代码在 IE 中工作,但不是 chrome。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多