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

本文关键字:访问 属性 自定义控件 NET ASP | 更新日期: 2023-09-27 18:29:36

我有一个名为"FileBrowser"的用户控件控件包含一个名为"FileList"的ListBox背后的代码暴露了一个属性:

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=测试1

点击返回"空"

再次点击,现在返回"Test1"

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

再次单击,返回"test2"

我对ASP.NET和一般的web开发都很陌生。我想也许有一些我不熟悉的奇怪的生命周期事件正在发生。

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

当您选择列表框值时,它会在客户端发生更改。但是您使用服务器端代码来获取值'<% Response.Write(fileBrowser.SelectedPath);%>',该值在页面返回之前仍然是"空"(初始值)。

在用户控件中,如果为ListBox设置AutoPostBack="True",则会得到所需的结果。