2013-08-29 180 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