动态加载用户控件 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 处理程序和通用处理程序

    在 Visual Studio 2010 中 当您说 new Item 时 您可以看到 Asp NET Handler 和 Generic Handler 你能告诉我有什么区别吗 我认为它是随 NET 4 0 一起提供的 因为我在 Goog
  • 将参数从 Web 表单传递到 Crystal 报表

    我有一份报告 我想将其显示在网络表单上 没有参数的报告运行良好 带参数的报告让我很头疼 这是我在 BindReport 方法中编写的代码 该代码在表单的页面加载事件上调用 ReportDocument rpt new ReportDocum
  • lambda 表达式是多线程的吗?

    lambda 表达式是多线程的吗 假设当你将数学公式编写为 lambda 方法时 当你将其传递给另一个方法时 它会是多线程的吗 不是100 清楚你问的是什么 您是否想问 lambda 是否自然地在不同的线程上运行 如果是这样 则它们只是 S
  • 如果未返回,则在一段时间后终止线程

    我有一个线程从网络或串行端口获取一些数据 如果 5 秒内没有收到数据 则线程必须终止 或返回 false 换句话说 如果线程运行时间超过 5 秒 则必须停止 我用 C 编写 但任何 NET 语言都可以 有两种方法 1 封装超时 从网络或串行
  • 何时使用 IComparable 与何时使用IComparer

    我正在尝试找出我需要实现哪些接口 他们本质上都做同样的事情 我什么时候会使用其中一种而不是另一种 好吧 他们不是quite与IComparer
  • 如何将 ConcurrentDictionary 转换为字典?

    我有一个 ConcurrentDictionary 对象 我想将其设置为 Dictionary 对象 不允许在它们之间进行转换 那么我该怎么做呢 The ConcurrentDictionary
  • 如何暂时暂停实时数据图表的绘制更新

    我想要 暂停 图表的系列更新来完成一些工作 就像我有一个按钮 当我单击它时 它将暂停图表更新 然后当我单击恢复按钮时 它将更新系列中的所有暂停点 我知道关于 chart1 Series SuspendUpdates 但它似乎不适合我 我使用
  • .NET 组件和 COM 组件有什么区别

    NET 组件和 COM 组件之间有什么区别 有时我们使用 NET 组件包含在我们的项目中 有时我们包含 COM 引用 背后的想法是什么 NET 组件是托管代码 内存处理已为您完成 COM http en wikipedia org wiki
  • 防止 ASP.Net 中的表单重新提交(不重定向到我自己)

    我有一个带有表单元素的母版页
  • Sencha Touch 和远程服务器上的身份验证

    我希望收到您关于使用 PhoneGap 和 Sencha Touch 的应用程序以及带有 Active Directory 的 NET 服务器的身份验证机制的反馈 因此 我们需要在移动设备上存储用户凭据 以便用户每次希望使用该应用程序时都不
  • StreamReader 消耗的字节数

    有没有办法知道 StreamReader 使用了流的多少字节 我有一个项目 我们需要读取一个文件 该文件具有文本标题 后跟二进制数据的开头 我最初尝试读取该文件是这样的 private int dataOffset void ReadHea
  • 回发后,asp.net 文本框不会填充

    我使用 ASP NET 和 C 几个文本框来计算输入的结果 Textbox2 输入了一个值 单击按钮后 Textbox1 就会被填充 我第一次输入该值时效果很好 但是第二次更改 Textbox2 中的值时 我发现在单击按钮进行调试时该值被分
  • 将 C# 代码转换为 F#(if 语句)

    我想知道如何转换此代码逐行从 C 到 F 我不想使用任何类型的 F 习惯用法或类似的东西 我想了解如何直接映射C 的构造到 F 这是 C 代码 requires l Length gt 0 int GetMinimumValue List
  • ASP.NET - Google Chrome 缓存 DropDownList 选择

    我的购物车页面上的 Google Chrome 和 Safari 似乎遇到了缓存问题 购物车中有 2 个下拉列表 当您在更改下拉列表中的值后点击结帐按钮时 它会将列表中选择的内容提交到数据库 解释意外的行为有点困难 所以我会尝试一步一步地写
  • 尝试将 Asp.Net Memebership 数据库部署到 SQL Azure

    我一直在尝试让 ASP net 会员服务提供商与托管在 SQL Azure 中的其余数据库配合使用 我已针对数据库运行适当的 SQL Azure 特定脚本来进行设置 这些脚本可从 Microsoft 获取 http archive msdn
  • 从嵌入 C# 的浏览器控件获取 HTML 源代码

    我有一个嵌入在 C Windows 应用程序中的浏览器控件 我想获取渲染的 HTML 可能已被 javascript 修改 而不是原始 HTML 有什么建议么 您可以获取 HTML 并确实设置它 使用WebBrowser DocumentT
  • 如何打开实际上已关闭的 Wifi 适配器的无线电?

    我在用着托管无线网络 http managedwifi codeplex com获取我的 Wifi 适配器的无线电状态 如果收音机实际上已关闭 如何将其打开 像这样的东西 WlanClient wlanClient new WlanClie
  • FullCalendar Asp.Net WebForms

    我正在尝试实施全日历 https i stack imgur com wmhGx png在我的 ASP NET 上WebForms项目 我见过一些实现此目的的示例 但没有任何运气 因为它们是针对我不习惯的 MVC 的 My Events数据
  • WPF 中的屏幕分辨率问题?

    我将在 WPF 中使用以下代码检测分辨率 double height System Windows SystemParameters PrimaryScreenHeight double width System Windows Syste
  • 服务器响应 PASV 命令返回的地址与建立 FTP 连接的地址不同

    System Net WebException 服务器响应 PASV 命令返回的地址与建立 FTP 连接的地址不同 在 System Net FtpWebRequest CheckError 在 System Net FtpWebReque

随机推荐

  • 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