首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

_doPostBack有关问题

2013-10-18 
__doPostBack问题本帖最后由 kll329582600 于 2013-10-17 11:32:52 编辑scriptfunction test(name){var

__doPostBack问题
本帖最后由 kll329582600 于 2013-10-17 11:32:52 编辑


<script>

    function test(name){
       var lbtnSupervisor = document.getElementById("ctl00_Body_lbtnQuery_LinkButtonAction");
       eval(lbtnSupervisor.href);
我如何在父窗口的后台得到这个name。
    }
</script>
<asp:LinkButton ID="lbtn" runat="server" Text="lbtn"></asp:LinkButton>

用这种方法,弹出一个页面,在弹出的页面中我想返回一个值到父窗体。如何在父窗体的后台得到弹出窗口返回来的值。
弹出窗口:
function ReturnValue() {
            window.opener.test('abc');
            window.close();
        }



[解决办法]
//父窗口方法
        function GetValueFromChild(p) {
            alert(p);
        }
        //子窗口方法
        function btnClick() {
            window.opener.GetValueFromChild("Hello");
            window.close();
            return false;
        }

[解决办法]
你本身的代码不对么,我这能传值啊
[解决办法]
你在父页面使用window.showModalDialog打开子页面,在子页面最后加上window.returnValue = "name的值在这里返回";这样在父页面就能拿到name值了!具体过程如下:
1,父页面
var dialog = window.showModalDialog("child.aspx", window, "dialogWidth:0px; dialogHeight:0px; center:yes; help:no; resizable:no; status:no;");
var name=dialog;
window.location.href = window.location.href;
window.location.reload;
2,子页面
 ScriptManager.RegisterStartupScript(this, this.GetType(), "auditdel", "alert('流程撤销成功!');window.close();window.returnValue = '这是要返回的name值,也可以是前台去做!';", true);
[解决办法]
是不是因为你不是用window.open()方法打开的子窗口 
        //我的方法
        <asp:Button runat="server" ID="btn" OnClientClick="btnClick();" Text="Open" />

        function btnClick() {
            window.open('WebForm1.aspx');
            return false;
        }

[解决办法]

        //页面代码,一定要定义name属性
        <input type="hidden" ID="lblInfo" name="lblInfo" />
        //js代码
        function GetValueFromChild(p) {
            var lbl = document.getElementById('lblInfo');
            lbl.value = p;
            document.forms[0].submit();
        }
        //后台代码
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //第一次请求页面
            }
            else
            {
                if (Request["lblInfo"] != null && !string.IsNullOrEmpty(Request["lblInfo"]))
                {
                    string str = Request["lblInfo"].ToString();


                    Response.Write("<script>alert('" + str + "')</script>");
                }
            }
        }


[解决办法]
你用个隐藏的控件来接这个返回值,再在后台取这个控件的值 比如下面
document.getElementById("label1" ).value =  name;
[解决办法]
var lbl = document.getElementById('lblInfo');
            lbl.value = p;
            document.forms[0].submit();
把这三行放到你的test方法里不就行了,你要不想立刻提交就把document.forms[0].submit();删了,取值还是像我刚才那样,只能放到form_load方法里通过Request["lblInfo"]的值,如果你非要在特定的事件处理函数中处理这个值,可以在form_load里先取出来存到一个私有变量中,再到事件处理函数中处理这个变量
[解决办法]
窗体间传值,不会找度娘
[解决办法]
parent.test(name);
[解决办法]
引用:
Quote: 引用:

var lbl = document.getElementById('lblInfo');
            lbl.value = p;
            document.forms[0].submit();
把这三行放到你的test方法里不就行了,你要不想立刻提交就把document.forms[0].submit();删了,取值还是像我刚才那样,只能放到form_load方法里通过Request["lblInfo"]的值,如果你非要在特定的事件处理函数中处理这个值,可以在form_load里先取出来存到一个私有变量中,再到事件处理函数中处理这个变量

可是在这个事件处理函数中在page_load里取不到值
什么意思,Page_Load()不就是事件处理函数么

热点排行