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);%>'它仍然是“空”(初始值),直到页面被回发。

在用户控件中如果设置AutoPostBack="True"对于ListBox,您将得到想要的结果。

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

相关文章:

c# - 用于 session 超时的javascript倒数计时器

javascript - 使用无法在 javascript 代码中访问的 AjaxEnabled WCF 服务

c# - 在 C# 中使用 int 作为字符串的数字表示

c# - 如何在C#中获取 'Date'文件属性

c# - 添加或减去的值会导致无法表示的 DateTime。参数名称

javascript for循环将dom元素文本与数组进行比较

javascript - 在包含的 div 中创建手电筒效果

javascript - 图像数据的文本区域未触发 onpaste 事件

c# - 当 visible=false 时,asp.net requiredfieldvalidator 不工作

c# - 信号 R 和 windows azure