C# (ASP.Net) 将选择值链接到 Codebehind 中的常量
Posted
技术标签:
【中文标题】C# (ASP.Net) 将选择值链接到 Codebehind 中的常量【英文标题】:C# (ASP.Net) Linking selection values to constants in Codebehind 【发布时间】:2010-09-17 03:22:00 【问题描述】:ASPX 代码
ASPX.CS - 代码隐藏
常量字符串 ServerDeveloper = "开发者";ASPX 错误:此上下文不支持代码块。
问题:那么,将下拉菜单/单选按钮/... ASPX 值绑定到与 CodeBehind 代码共享的常量的正确方法是什么?
我知道我可以[来自 CodeBehind] 执行 rbServer.Add.Item("developer"),但是有没有办法从 Presentation 方面实现它?
【问题讨论】:
我们是否遗漏了一些信息?请修复 ASPX 代码! 【参考方案1】:会是:
rbServer.Items.Add(ServerDeveloper)
好的,既然你想从演示文稿中做到这一点......这是可能的,但非常丑陋:
请注意,代码块必须高于标记 - 如果你把它放在下面,它似乎不起作用。另请注意,必须保护 const 才能使页面访问它。这对我来说非常像黑客攻击,但确实如此。
【讨论】:
我同意内联代码很难看。我只是希望 但是,它有一个很好的“细节”,即在两个领域都使用了常量。【参考方案2】:回想起来,更好的解决方案是使用 rbServer.Items.Add() 从代码隐藏中添加它
【讨论】:
我不同意,如果它们是常量值,则更容易将它们放在 aspx 中,因为在生成资源文件时,它们会在 resx 中自动生成。如果将它们添加到代码隐藏中,则必须使用 GetLocalResoureObject() 手动链接资源主目录...【参考方案3】:在大多数情况下,我将 ListItems 添加到代码隐藏中的列表中,而不是在标记中。我猜这会解决你的问题(尽管我认为我们在这里遗漏了一些信息)。创建新的 ListItems 并将它们添加到 rbServer 的 Items 集合中。
【讨论】:
【参考方案4】:出于您发布的原因,我通常会尽量避免使用 RadioButtonList 控件。虽然我还没有想出一个易于使用的替代方案:(
【讨论】:
以上是关于C# (ASP.Net) 将选择值链接到 Codebehind 中的常量的主要内容,如果未能解决你的问题,请参考以下文章
单击 HTML 链接时在 ASP.NET 中调用 C# 函数
Asp.net C# 使用 Javascript 将数据从 gridview 显示到 TextBox