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

标签 c# javascript asp.net

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


我看到一些非常奇怪的行为。当我单击按钮textBoxTest时,将从上次单击按钮时获得SelectedValue的值。

例:

FileList.SelectedPath = Test1

点击返回“空”

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

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

再次单击,返回“ test2”

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

最佳答案

选择列表框值时,它会在客户端更改。但是,您正在使用服务器端代码来获取值'<% Response.Write(fileBrowser.SelectedPath);%>',该值仍为“空”(初始值),直到该页面回发为止。

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

关于c# - ASP.NET自定义控件属性访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18518520/

相关文章:

c# - 小数和数学运算

c# - 如何通过静默提供用户凭据来打开共享点页面

c# - 为什么在 DataGridTextcolumn 中找不到 ObservableCollection 中实际类的属性,但父类属性是?

javascript - 什么是解构赋值及其用途?

c# - 如何在 Kestrel 中配置端点?

c# - 是否可以使用代码将项目添加到 C# 设置

javascript - 在 AS3 语法中使用 ω?

javascript - 单击 "Home"链接后索引页发生变化

asp.net - 启用 Web 的文件存储和授予 IIS_IUSRS 删除权限的安全隐患

asp.net - c# windows 应用程序在 Debug模式下正常,在 Release模式下出错