none
ASP.NET利用showModalDialog來做一個父子視窗互相傳值的功能 RRS feed

  • 問題

  • 想請教各位,我按照 http://www.dotblogs.com.tw/puma/archive/2008/06/29/4401.aspx 想實作一個利用showModalDialog來做一個父子視窗互相傳值的功能,但我再從子頁面要傳回父頁面時,就會出現父頁面TEXTBOX是NULL的錯誤訊息。

    請各位幫我看一下是什麼原因,附上VS 2010所建置的專案檔和錯誤視窗畫面,謝謝。

    專案檔下載連結  http://ifile.it/6fa5ymu/WebSites.zip

    2011年10月18日 上午 09:07

解答

  • 您的Js錯了啦

    //傳值給父頁面
    this.Page.Controls.Add(new LiteralControl(string.Format("<script>opener.form1.TextBox1.value ='{0}'</script>", row.Cells[1].Text)));
    

    不是

    //傳值給父頁面
    this.Page.Controls.Add(new LiteralControl(string.Format("<script>opener.document.form1.TextBox1.text ='{0}'</script>", row.Cells[1].Text)));

    或是改用
    opener.document.getElementById('TextBox1').value ='{0}' 也可以!
     

    建議您可以再看一下 http://www.w3school.com.cn/ 有相當多web的東西哦!

     

    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/


    • 已編輯 亂馬客 2011年10月18日 上午 10:03
    • 已提議為解答 Bill ChungMVP 2011年10月18日 下午 10:35
    • 已標示為解答 天狼星人 2011年10月19日 上午 12:13
    2011年10月18日 上午 09:54

所有回覆

  • 建議您,用最簡單的一個lab,來模擬你的問題狀況。

    也建議您貼上您母視窗的.aspx,以及javascript語法,以及子視窗最後帶值回母視窗的javascript語法就好。

    這樣會比較快找到原因。

    找不到原因時,將整個source code upload是破不得已的方式。

    (自行建立lab的過程,很有可能您的問題就迎刃而解了,這個過程也是最可以成長的機會)


    常用資源參考:
    小弟的blog: In 91,wiki: my wiki
    2011年10月18日 上午 09:38
    版主
  • 您的Js錯了啦

    //傳值給父頁面
    this.Page.Controls.Add(new LiteralControl(string.Format("<script>opener.form1.TextBox1.value ='{0}'</script>", row.Cells[1].Text)));
    

    不是

    //傳值給父頁面
    this.Page.Controls.Add(new LiteralControl(string.Format("<script>opener.document.form1.TextBox1.text ='{0}'</script>", row.Cells[1].Text)));

    或是改用
    opener.document.getElementById('TextBox1').value ='{0}' 也可以!
     

    建議您可以再看一下 http://www.w3school.com.cn/ 有相當多web的東西哦!

     

    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/


    • 已編輯 亂馬客 2011年10月18日 上午 10:03
    • 已提議為解答 Bill ChungMVP 2011年10月18日 下午 10:35
    • 已標示為解答 天狼星人 2011年10月19日 上午 12:13
    2011年10月18日 上午 09:54
  • 2011年10月18日 下午 01:21
  • 了解,謝謝指教
    2011年10月18日 下午 02:39