關於父子頁面的互動

2022-03-12 01:17:35 字數 1939 閱讀 3344

**

這兩天做專案的時候需要實現乙個功能,就是點選父頁面上的乙個超連結或是控制項,然後彈出乙個新的子頁面。在子頁面中作出相應的操作,然後將子頁面的值傳遞到父頁面,效果圖如下:

根據網上的資料用js幾句話就可以搞定,可是自己做起來之後發現卻沒那麼簡單,網上的說法是當點選這個超連結(此處為文字框)時觸發乙個事件, window.showmodaldialog("要跳轉的頁面");我剛開始就遇到麻煩了,不知怎麼得不能獲取文字框,後來發現原來自己暈了,忘了我的**套用模板了。當**套用模板時,用jquery獲取這個文字框就不能簡單的$("#id")了,因為這樣的話容易和模板頁裡面的控制項混淆(個人理解),需要怎麼辦呢? $("#"),必須指出是clientid。這樣就搞定了。乙個小插曲,好,回來!這樣的話,就可以觸發事件將新頁面展示出來了。**如下: $(function () );

})這樣新的頁面就展示出來了,如果單純的在新的頁面中傳值的話直接乙個 window.returnvalue = 要傳遞的值,然後再父頁面中獲取 window.showmodaldialog("新頁面的路徑");的返回值就可以了,但是有很多時候在子頁面中往往沒那麼簡單,往往是通過一系列的選擇,以及後台**的處理來得到這個值,然後再傳遞給父頁面。一旦涉及到後台**的話,後台**與js結合就比較麻煩了。

比如上面的這個例子,它的目的是通過選擇樹節點,然後將節點的名稱以及id傳遞給父頁面,但是上面這個樹控制項不是.net自帶的treeview控制項,是使用者自定義的。並且通過js只能獲得選中節點的id,如果想獲得節點的名稱的話,必須在後台通過c#**獲得。

那這樣通過ajax去訪問後台的方法

function deldata(pid) ',                    // 傳送資訊至伺服器時內容編碼型別              

datatype: "text",        

success: function (msg) ,               

//msg為返回值,返回的是選中節點的名稱

error: function (xhr, textstatus, errorthrown)             });         }

但是這樣的話,訪問的方法只能是靜態的方法。而我的資料來源偏偏不是靜態的,這樣的話這個方法基本上告吹了!那接下來只能在後台**中拼寫js**了。

方法一:response.write("");這樣直接在父頁面中接收這個returnvalue然後根據|將返回值分開,可以獲取id和name了。但是不知為什麼,在我的專案中父頁面就是獲取不到這個值,我懷疑是我使用了模板頁的原因,希望大牛們可以給我指點。這樣我只能使用第二種方法了,

方法二: response.write("");

就是在子頁面裡面直接操作父頁面,通過這個方法直接給父頁面的控制項賦值,這樣就完成了。

完成父子頁面的互動後,從子頁面傳遞name然後將它賦給父頁面的textbox,但是textbox是可編輯的。這樣就很不爽了,就想能不能把它設為readonly,不能去編輯。但是設為readonly之後又出問題了,在後台獲取的文字框的值為空,也不知微軟為什麼做,後來通過網上查資料找到了解決辦法,剛開始不要設定文字框為空,在頁面初始化的時候再通過**設定為空就可以了。具體**如下:  protected void page_load(object sender, eventargs e)

{if (!page.ispostback)

{文字框id.attributes.add("readonly", "true");

這樣的話基本完成了!

我曉得,我寫的這些東西很多大牛在很早之前就已經搞定了,可能這就是一些小兒科的東西,但我還是要寫出來,不為別的,我是今年剛畢業的小菜鳥,我在做這個功能的時候費了不少力,我希望我所分享的這點知識能夠幫助和我一樣掙扎在it起跑線上的初學者們!同時也希望各位大牛能夠不吝賜教!給與我們小菜鳥們一些幫助!謝謝~

layer父子頁面互動

layer是一款近年來備受青睞的web彈層元件,官網位址是 當layer以iframe層的方式彈出新的視窗 子頁面 如何在子頁面中訪問父頁面的元素和函式。1 訪問父頁面元素值 var parentid parent.id val 訪問父頁面元素值 2 訪問父頁面方法 var parentmethod...

Layer 父子頁面之間的互動

父頁面獲取子頁面 var body layer.getchildframe body index 建立父子聯絡 body.find parameter val 直接用body.子類元素 操作子頁面元素 子頁面操作父頁面var index parent.layer.getframeindex wind...

FF Mozilla 擴充套件,與頁面的互動

做ff的擴充套件,有時候避免不了與頁面做些互動。其實ff與頁面的互動利用的是事件的機制。原理大概是這樣,如果我想從頁面傳一值給ff的extension。1.在extension裡監聽乙個事件,這事件是我們自定義的 在頁面上該怎麼做呢?既然有監聽,當然也有建立咯。對了,就是在頁面上建立自定義的事件。2...