2013-08-29 228 views
1

我有一個叫做用戶控件「FileBrowser。」該控件包含一個名爲'FileList'的ListBox。後面的代碼公開屬性:ASP.NET自定義控件屬性訪問

public string SelectedPath 
    { get { return string.IsNullOrEmpty(FileList.SelectedValue) ? "empty" : FileList.SelectedValue; } } 

我從實現使用該控件的網頁訪問此:

<script> 
    function testFunc() { 
     var s = '<% Response.Write(fileBrowser.SelectedPath);%>'; 
     document.getElementById('<%= textBoxTest.ClientID %>').value = s;    
    } 
</script> 

我看到一些很奇怪的行爲。當我點擊按鈕textBoxTest我得到的SelectedValue從當按鈕被點擊的最後的值。

例子:

FileList.SelectedPath = Test1的

點擊返回 「空」

再次點擊,現在它返回 「Test1的」

選擇在列表框的新值,TEST2 ,再次點擊,返回「Test1」

再次點擊,返回「test2」

我對ASP.NET和Web開發一般都很陌生。我想也許有一些奇怪的生命週期事件發生,我不熟悉。

回答

1

當你選擇一個列表框的值,它改變了客戶端。但是,你正在使用服務器端代碼來獲取值,'<% Response.Write(fileBrowser.SelectedPath);%>'這仍然是「空」(初始值),直到頁面被調回。

在用戶控件,如果你設置AutoPostBack="True"爲ListBox,你會得到想要的結果。

+0

美麗,完美。網絡是一個全新的野獸...... – Michael