动态加载用户控件 ASP.net 中的单选选项 GroupName 问题

2024-03-11

我有用户控制

<table style="border-width: 0">
    <tr>
        <td style="vertical-align: middle;">
            <asp:RadioButton ID="rdOption" runat="server" Text="I m testing"  
                GroupName="Questions" oncheckedchanged="rdOption_CheckedChanged" 
                AutoPostBack="True"/>
        </td>
        <td style="vertical-align: middle; padding-left: 10px">
            <asp:TextBox ID="txtOthers" runat="server" CssClass="txtbox" Visible="false"></asp:TextBox>
        </td>
    </tr>
</table>

protected void Page_Load(object sender, EventArgs e)
    {
        rdOption.GroupName = "myGroup";
        rdOption.Text = Option.OptionDesc;
    }

在 Survey.aspx 上,我动态加载了用户控件

 foreach (clsOptions option in _CurrentQuestion.Options)
        {
            UserControls_OptionField ctrl = Page.LoadControl("~/UserControls/OptionField.ascx") as UserControls_OptionField;
            ctrl.Option = option;
            pnlOption.Controls.Add(ctrl);
        }

问题是每个选项都有不同的组名称,如下所示。这就是为什么选项无法正常工作并且可以选择所有选项,而在 MCQ 中只能选择一个选项。

<input id="ContentPlaceHolder1_ctl01_rdOption" type="radio" name="ctl00$ContentPlaceHolder1$ctl01$myGroup" value="rdOption">

<input id="ContentPlaceHolder1_ctl02_rdOption" type="radio" name="ctl00$ContentPlaceHolder1$ctl02$myGroup" value="rdOption">

正如大家所建议的,这是设计使然,后来被认为是一个错误。

Joel 建议的控件非常棒,只是它覆盖了整个渲染逻辑,因此,编写此控件后框架中的任何增强功能都不会使用。

所以,我建议更换Render()另一个控件中的方法:

    protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {
        using (var stringWriter = new StringWriter())
        using (var htmlWriter = new HtmlTextWriter(stringWriter))
        {
            base.Render(htmlWriter);
            var tagText = stringWriter.ToString();

            tagText = Regex.Replace(tagText, "name=\"(\\S+)\"", "name=\"" + GroupName + "\"");

            writer.Write(tagText);
        }
    }

好处是能够保留可能来自基础渲染的所有额外内容。

请注意,您可以:

  • 向类添加另一个属性,以根据是否设置该属性使这种不同的渲染行为可选

  • 使所有的<asp:RadioButton:声明引用您的自定义控件而不更改它们,通过 web.config:

  <system.web>
    <pages>
      <tagMapping>
        <add tagType="System.Web.UI.WebControls.RadioButton" mappedTagType="WebformsLibrary.CustomRadioButton" />
      </tagMapping>
    </pages>
  </system.web>

Where WebformsLibrary.CustomRadioButton是班级。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态加载用户控件 ASP.net 中的单选选项 GroupName 问题 的相关文章

  • 有没有办法使用 ASP.NET 在用户离开页面时始终运行某些服务器端代码?

    我想知道当用户离开 ASP NET 中的页面时是否有任何方法可以始终运行一些服务器端代码 页面卸载事件不好 因为如果有人单击链接 则不会调用该事件 理想情况下 即使用户关闭浏览器 我也希望代码能够运行 我怀疑我所问的问题是不可能的 但问一下
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • 自定义 IQueryable

    我正在尝试自定义应用程序的实体 使它们具有引用加载它们的 DataContext 的属性 我认为最好的方法是以某种方式创建一个实现 IQueryable 的类 并在其 GetEnumerator 方法中设置实体 datacontext 属性
  • 如何拦截 Boo 中的方法调用?

    红宝石有method missing Python有getattr Boo 是否提供了一些可以用来拦截方法调用的东西 是的 布有IQuackFu http docs codehaus org pages viewpage action pa
  • 从备用位置获取实体框架连接字符串?

    如何从自定义配置文件而不是 web config 检索 Entity Framework 4 连接字符串 编辑 删除默认构造函数生成的代码并在分部类中重新创建它以使用拉入的连接字符串是否合理 我真的很想避免使用包括连接字符串在内的重载方法更
  • Winforms 中的 WPF ElementHost 最大化时崩溃 (Windows)

    我正在尝试将新的 WPF 控件集成到现有的 WinForms 应用程序中 并使用 ElementHost Dock Fill 来托管以下 XAML UserControl NET 4 当我将 WinForm 设置为最大化时 我的整个操作系统
  • 在 Azure DevOps 中为 Wix MSI 文件生成 GUID

    我正在为 Web 服务器应用程序和 Sitecore 前端应用程序设置 Wix 安装程序 我的问题并非特定于 Web 服务器或 Sitecore 我的问题是 Wix 以及如何使用它进行持续交付 1 Wix 需要每个文件和产品本身的 GUID
  • 如何有效确保小数值至少有 N 位小数

    我想在进行算术运算之前有效地确保十进制值至少有 N 个位置 在下面的示例中 3 显然我可以格式化 0 000 然后解析 但它的效率相对较低 我正在寻找一种避免与字符串转换的解决方案 我尝试过以下解决方案 decimal d 1 23M d
  • jQuery Datatable:分页和过滤器显示不正确

    我不知道如何解决这个问题 尝试了一整天但没有成功修复分页 我正在使用 jQuery 数据表 并且为了显示我的大量数据 我正在使用服务器端 作为测试 仅调用表中的 10 行数据 然后在传递到表之前 我重组了里面的数据dataSrc 使用这个解
  • 在 SQL 2005+ 中,CLR 存储过程是否优于 TSQL 存储过程?

    我目前的观点是否定的 更喜欢 Transact SQL 存储过程 因为它们是重量更轻且 可能 性能更高的选项 而 CLR 过程允许开发人员进行各种恶作剧 然而最近我需要调试一些写得非常糟糕的 TSQL 存储过程 像往常一样 我发现许多问题是
  • 当集合提交回控制器时,未将对象引用设置为对象的实例。错误

    我正在更新多条记录 单击提交按钮后出现错误 这表明控制器收到 NULL 并在第 36 行报告以下错误 下面是我的控制器 视图和模型的代码 你调用的对象是空的 描述 执行当前 Web 请求期间发生未处理的异常 请检查堆栈跟踪 有关该错误及其起
  • 如何计算最低系统要求?

    对于我用 Visual C 编写的应用程序 Testing 不 真的 这就是全部
  • 是否可以在 IIS7 Express 中使用自定义主机标头/绑定?

    我正在尝试配置一个新的ASP NET MVC3 using IIS7快递 在我的本地开发机器上 使用自定义域名 eg 我的本地开发机器 打开我的网络浏览器 goto http dev www mydomain com http dev ww
  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • HttpContext.GetGlobalResourceObject 始终返回 null

    我在 App GlobalResources 文件夹中创建了两个文件 SiteResources en US resx SiteResources sp SP resx 两者都包含 SiteTitleSeparator 的值 这是我想要做的
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • JsonPath 与 Newtonsoft.JSON

    我尝试了近一个小时的不同方法 但我不明白 我的 JSON 对象是这样的 typeOfHair value code Dry Hair values value DryHair language en value TrockenesHaar
  • 为什么过滤未排序的列表比过滤排序的列表更快

    我一直在玩 Java 8Streams API我决定进行微基准测试stream and parallelStream 溪流 正如预期的那样parallelStream 速度是原来的两倍 但是会出现其他问题 如果我在将数据传递到之前对数据进行
  • 不使用
    标签是否可以实现类似
    的效果?

    我个人喜欢 fieldset http www w3 org wiki HTML Elements fieldset标签 因为它如何绘制一个盒子并放置 legend http www w3 org wiki HTML Elements le
  • django 中的竞争条件

    下面是一个带有潜在竞争条件的 django 视图的简单示例 myapp views py from django contrib auth models import User from my libs import calculate p
  • 重载方法调用重新设计

    我有一个界面IAction它有一个通用方法 public interface IAction void doAction ISignal sig IState state 另一堂课IActionAbstract然后实现IAction接口并调
  • 如何从 SugarCRM 的表中检索所有记录?

    我正在使用 Sugar Pro 6 1 想知道如何从产品表中检索所有产品及其 id 我正在尝试使用以下代码 sql SELECT id name FROM products order by name result GLOBALS db g
  • 如何让 Spring @ControllerAdvice 与其他自定义 Spring @Aspect 一起工作?

    我有一个自定义记录器使用 Aspect我希望它总是最后运行 这样无论控制器返回什么响应 它都会被记录到数据库中 所以我放了一个 Order 1 在这方面 我还使用编写了一个错误处理程序 ControllerAdvice处理所有意外异常并返回
  • 注意:无法读取...等的 get kotlin 元数据和类型转换器

    添加房间数据库依赖项并使用我的应用程序配置它后 我遇到了几个错误 其中大部分是Failed to read get kotlin metadata for 虽然我在项目中没有使用 kotlin 但第二个错误是关于变量的 TypeConver
  • 如何在 JavaScript 中对 NodeList 进行重新排序/排序?

    我有一个我认为应该是一个简单的问题 让我快速解释一下 在我的 JavaScript 中 food xml读入为 getMenuXml open GET food xml false getMenuXml send xmlDoc getMen
  • npm start 无法打开浏览器选项卡

    我正在学习 AngularJS 2 我想从他们的官方网站上在 AngularJS 2 中进行我的第一个应用程序 所以我从这里开始关注所有内容https angular io guide quickstart https angular io
  • 是否有 Angular / Angular-CLI 和 Node.js 的兼容性列表?

    我定期遇到这个问题 必须使用已弃用的 Angular 依赖项来启动旧的 Angular 项目 因为我通常运行最新的 Node js 版本 至少是最新的 LTS 版本 所以我经常遇到问题 即我无法运行旧项目 我通过使用节点版本管理器解决了这个
  • iTunes Connect 错误:“应用内购买已被退回”

    我看到以下错误iTunes Connect in the in app purchase我的应用程序部分 应用内购买已退回并在表中突出显示 以下 全部in app purchases新应用程序已被拒绝 他们都显示出状态开发者需要采取行动 走
  • XPath 在任何文本节点中查找文本

    我试图在文档中的任何文本节点中查找特定文本 到目前为止我的语句如下所示 doc xpath text Alliance Consulting do node end 这显然行不通 有人能建议更好的选择吗 这个表情 text Alliance
  • Spring security 3 带索引的拦截url模式

    我正在尝试在项目中使用 Spring Security v3 2 目前 我总是使用 Coldfusion 文件来调用其他文件来构建视图 所以我所有的网址都通过了index cfm blablah 现在我坚持允许匿名用户进入主视图 下列的Sp
  • 初学者打开资源管理器显示文件夹内容

    我几天来一直在 Windows 7 上修改 Python 3 66 取得了良好的进展 但我完全不知道如何让 Windows 资源管理器打开并显示我想要的文件夹内容 我已经尝试了至少 7 种不同的解决方案 但似乎都不起作用 他们都可以很好地打
  • 使用php过滤JSON数据

    我正在尝试迭代此 json 文件并过滤掉不需要的元素 我想拆分结果 以便我有一个客户列表或供应商列表 json 文件 descriptor Test resources uuid 281d393c 7c32 4640 aca2 c286f6
  • Google 日历 API + 电子邮件通知 ics 文件

    我正在使用 Google Calendar API 在 Google Calendar 上创建活动 该 API 工作正常 当我修改 Google 日历中的其中一项活动时 Google 可以通过电子邮件向我发送包含 ics 文件的更新 有没有
  • 在 jasper 报告中的单个文本字段中使用多种字体

    我有一个显示的字段 命名 Here To 是静态的并且 NAME 是一个变量 所以我使用了一个文本字段 attr 和 收件人 F 名称 作为一种表达方式 现在的问题是 我必须为 收件人 和 名称 使用两种单独的字体 我尝试过使用风格 但我一
  • 具有相同标识符的多个 HTTP GET 参数

    假设我收到如下请求 http www example com index php id 123 version 3 id 234 version 4 是否可以在我的 php 代码中以简单的方式提取这些内容 我意识到我可以使用 window
  • 动态加载用户控件 ASP.net 中的单选选项 GroupName 问题

    我有用户控制 table tr td td tr table