- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的 aspx 中有一个转发器:
<asp:Repeater ID="rptDummy" runat="server" OnItemDataBound="rptDummy_OnItemDataBound"
Visible="true">
</asp:Repeater>
在网络的 C# 端我写了这个函数:
protected void createRadioButtons(DataSet ds){
List<System.Web.UI.WebControls.RadioButton> buttons = new List<System.Web.UI.WebControls.RadioButton>();
foreach (DataTable dt in ds.Tables){
foreach (DataRow r in dt.Rows){
System.Web.UI.WebControls.RadioButton rb = new System.Web.UI.WebControls.RadioButton();
rb.Text = r[1] + " " + r[2] + " " + r[3] + " " + r[4];
rb.GroupName = (string)r[5];
buttons.Add(rb);
}
}
rptDummy.DataSource = buttons;
rptDummy.DataBind();
}
但是试了一下,什么都没有。我做错了什么?
最佳答案
试试这个:
1 - 定义 Repeater
:
<asp:Repeater ID="rptDummy" runat="server" OnItemDataBound="rptDummy_OnItemDataBound" >
<ItemTemplate>
<asp:RadioButtonList ID="rbl" runat="server" DataTextField="Item2" DataValueField="Item2" />
</ItemTemplate>
</asp:Repeater>
2 - 构建数据结构并绑定(bind)转发器:
List<Tuple<string,string>> values = new List<Tuple<string,string>>();
foreach (DataTable dt in ds.Tables){
foreach (DataRow r in dt.Rows){
string text = r[1] + " " + r[2] + " " + r[3] + " " + r[4];
string groupName = (string)r[5];
values.Add(new Tuple<string,string>(groupName, text));
}
}
//Group the values per RadioButton GroupName
rptDummy.DataSource = values.GroupBy(x => x.Item1);
rptDummy.DataBind();
3 - 定义 OnItemDataBound
事件:
protected void rptDummy_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
IGrouping<string, Tuple<string, string>> group = (IGrouping<string, Tuple<string, string>>)e.Item.DataItem;
RadioButtonList list = (RadioButtonList)e.Item.FindControl("rbl");
list.DataSource = group;
list.DataBind();
}
}
你看,每个IGrouping<string, Tuple<string, string>>
指的是某个GroupName的一组RadioButtons,它们也是repeater中的item。我们为每个项目创建一个新的 RadioButtonList,它代表整组 RadioButton。
您可以通过使用与 Tuple
不同的 DataStructure 来使其变得更好, 通常不清楚是什么 Item1
和 Item2
意味着。
更新:
如果您想查看选定的值:
protected void button_OnClick(object sender, EventArgs e)
{
foreach (RepeaterItem item in rptDummy.Items)
{
RadioButtonList list = (RadioButtonList)item.FindControl("rbl");
string selectedValue = list.SelectedValue;
}
}
关于c# - 填充 ASP.NET 转发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15189805/
我想知道从 IMAP 帐户转发邮件的最快和最可靠的方法是什么。 我的大学不允许我们的学生邮箱转发到私有(private)电子邮件帐户(这里每个人都使用 Gmail 或 Hotmail)。这是一个政治问
我正在使用 .net 构建的网站 下面的代码 输出类似...的内容 Title Div contents Title Div con
我在访问 HTML 元素时遇到问题。在服务器端,这些元素存在于转发器控件的 itemTemplate 中。 简单代码:
下面是我用来重定向端口 8080 上的常规 HTTP 请求的简单脚本,它会立即根据源 IP 地址重定向(至少使它们成为)它们。 它有效(对于 HTTP),但是我希望对来自 443 端口的 HTTPS
我在HTML中初始化了一个中继器colorSetOne,然后,我想用另一个中继器colorSetTwo替换,该怎么做(它可以由事件触发)?这是 jsfiddle :http://jsfiddle.ne
我在前端创建了一个中继器,我需要添加多个项目,第二个项目是一个字符串,这需要添加到图像 src,有什么想法吗?
我想用 socat 创建一个端口转发器,以便通过单个 openssl channel 重定向多个分支连接。我可以在不使用任何 tun 或 vpn 的情况下在 socat 中执行此操作吗? 到目前为止,
我正在尝试创建一个包含表格的 HTML 模板。表中的每一行都应该代表我拥有的一个结构,并包含来自该结构的值。 我找到的唯一相关引用资料是:golang template - how to render
您好,感谢您阅读本文。 有什么方法可以让我的 Repeater 数据绑定(bind)以仅列出包含与我的 QueryString 中的单词/数字相等的内容的行? 这是我的 Nav Url 示例,其中包含
我在 JQuery Carousel 中使用 ASP Repeater,就像在 link 中一样.我在我的 .aspx 页面中添加了所有引用和链接,我的代码是: Movies
我想用中继器显示文件夹图像中的图片,但我不知道为什么无法显示问题图片。
我有一个字典列表,我是这样创建的: List> _list = new List>(); var q = from d in db.TT_DELIVERies
我正在使用 woocommerce-advanced-checkout-fields 插件并在计费部分添加了一个转发器字段,如下所示 如上图所示,中继器字段“姓名/电子邮件”适用于产品“腰带” 现在,
我有以下简单的 NodeJS 脚本,想稍微修改一下.... var sys = require( 'sys' ), net = require( 'net' ); var outputserver =
我的 aspx 中有一个转发器: 在网络的 C# 端我写了这个函数: protected void createRadioButtons(DataSet ds){ List butto
我在 stackoverflow 博客上的 OpenID 帖子中读到了这条评论。 Kibbee says : One nice feature of OpenID that I use is the
我有一个这样的中继器: " Text="" /> 我像这样将数据源绑定(bind)到转发器: Dim dbRooms As New pbu_
我这里有一个非常基本的 sitecore 问题。我想遍历一组子对象(位置),并显示有关每个子对象的一些信息。 我正在使用 ASP 转发器进行迭代,我正在加载页面上的 child ,我正在尝试使用 sc
我正在尝试使用来自 AngularJS 的数据填充 Bootstrap Carousel 组件。基本上我在 carousel-inner 类中填充项目是这样的:
我是 Node.js 的新手,但我想将它用作一个快速的 Web 服务器,它只需接收请求 uri,然后在返回 JSON 流的内部服务上运行查询。 即像这样: http.createServer(func
我是一名优秀的程序员,十分优秀!