【问题标题】:ASP.NET Custom Control Property AccessASP.NET 自定义控件属性访问
【发布时间】:2013-08-29 18:32:16
【问题描述】:

我有一个名为“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 = Test1

点击返回“空”

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

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

再次点击,返回“test2”

总的来说,我对 ASP.NET 和 Web 开发非常陌生。我想也许会发生一些我不熟悉的奇怪的生命周期事件。

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案1】:

    当您选择一个列表框值时,它会在客户端发生变化。但是您正在使用服务器端代码来获取值 '&lt;% Response.Write(fileBrowser.SelectedPath);%&gt;',它仍然是“空”(初始值),直到页面被回发。

    在用户控件中,如果你为ListBox设置AutoPostBack="True",你会得到想要的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多