C# ASP.NET自定义控件属性访问

C# ASP.NET自定义控件属性访问,c#,javascript,asp.net,C#,Javascript,Asp.net,我有一个名为“FileBrowser”的用户控件。该控件包含一个名为“FileList”的列表框。隐藏的代码公开了一个属性: public string SelectedPath { get { return string.IsNullOrEmpty(FileList.SelectedValue) ? "empty" : FileList.SelectedValue; } } 我从一个实现控件的页面访问它,使用以下内容: <script> function test

我有一个名为“FileBrowser”的用户控件。该控件包含一个名为“FileList”的列表框。隐藏的代码公开了一个属性:

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>

函数testFunc(){
var s='';
document.getElementById(“”).value=s;
}
我看到一些非常奇怪的行为。单击按钮
textBoxTest
时,我会从上次单击按钮时获取
SelectedValue
的值

例如:

FileList.SelectedPath=Test1

单击返回“空”

再次单击,现在返回“Test1”

在列表框中选择一个新值test2,再次单击,返回“Test1”

再次单击,返回“test2”


一般来说,我对ASP.NET和web开发非常陌生。我想可能发生了一些我不熟悉的奇怪的生命周期事件。

当您选择一个列表框值时,它会在客户端发生变化。但是您正在使用服务器端代码获取值,
'
,该值仍然为“空”(初始值),直到页面被发回


在用户控件中,如果您为列表框设置了
AutoPostBack=“True”
,您将获得所需的结果。

当您选择一个列表框值时,它会在客户端发生变化。但是您正在使用服务器端代码获取值,
'
,该值仍然为“空”(初始值),直到页面被发回

在用户控件中,如果为列表框设置
AutoPostBack=“True”
,则将获得所需的结果