首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SelectedValue...possible实现RadioButtonList的数据绑定?

用SelectedValue...possible实现RadioButtonList的数据绑定?
EN

Stack Overflow用户
提问于 2009-06-26 19:23:18
回答 4查看 43.2K关注 0票数 9

我正在将一个GridView数据绑定到一个对象数据源。网格视图包含一个TemplateField,其中包含一个内联定义了ListItems的RadioButtonList。

我希望能够将RadioButtonList的SelectedValue数据绑定到与其他网格列相同的底层表中,但这行不通!

是我的语法错误,还是这是不可能的,需要循环代码在每一行中分别选择适当的项目?

代码语言:javascript
复制
<llblgenpro:LLBLGenProDataSource ID="llbComputerApplication" DataContainerType="EntityCollection" runat="server"></llblgenpro:LLBLGenProDataSource>
        <asp:GridView ID="gridComputerApps" DataSourceID="llbComputerApplication" runat="server" AutoGenerateColumns="False" 
            EmptyDataText ="NO APPLICATIONS FOUND FOR THIS COMPUTER." 
            DataKeyNames="ComputerID, ApplicationID" EnableViewState="False"
            style="border-style:dotted;border-width:thin"
            >
            <Columns>
                <asp:BoundField DataField="ApplicationID" HeaderText="Application ID" SortExpression="ApplicationID" Visible="True" />
                <asp:TemplateField HeaderText="Application Name"><ItemTemplate><%#Eval("Application.ApplicationName")%></ItemTemplate></asp:TemplateField>
                <asp:TemplateField HeaderText="Normalized Name"><ItemTemplate><%#Eval("Application.NormalizedAppName")%></ItemTemplate></asp:TemplateField>
                <asp:TemplateField HeaderText="Notes"><ItemTemplate><%#Eval("Application.NormalizedNotes")%></ItemTemplate></asp:TemplateField>
                <asp:TemplateField>
                    <HeaderTemplate>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:RadioButtonList SelectedValue='<%#Eval("RequirementOption")%>' ID="rblRequirementOption" RepeatDirection="Horizontal"  runat="server">
                            <asp:ListItem Value="Need Now" Text="Need Now"></asp:ListItem>
                            <asp:ListItem Value="Need Someday" Text="Need Someday"></asp:ListItem>
                            <asp:ListItem Value="Do Not Need" Text="Do Not Need"></asp:ListItem>
                        </asp:RadioButtonList>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="NormalizedNotes" HeaderText="Notes" Visible="False" />
            </Columns>
        </asp:GridView>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-06-26 19:30:58

你所拥有的应该是有效的。你收到错误了吗?这是从我当前的项目中复制的一个工作示例。我绑定到一个可以为空的位字段-所以有一个隐藏的列表项来接受空值。

代码语言:javascript
复制
<asp:RadioButtonList runat="server" ID="MyRbl" SelectedValue='<%# Bind("MyRblField") %>'
    CssClass="NormalTextBox" RepeatDirection="Horizontal">
    <asp:ListItem Value="false" Text="No" />
    <asp:ListItem Value="true" Text="Yes" />
    <asp:ListItem Value="" Text="" style="display: none" />
</asp:RadioButtonList>
票数 21
EN

Stack Overflow用户

发布于 2010-01-06 01:05:19

在绑定MS SQL中的布尔值时,我也遇到了这个问题(radiobuttonlist中没有选择任何内容):

代码语言:javascript
复制
radDefault.Items.Add(new ListItem("Yes", "true"));
radDefault.Items.Add(new ListItem("No", "false"));

在我的例子中,解决方案是大写true/false值的第一个字母,然后单选按钮列表按预期工作:

代码语言:javascript
复制
radDefault.Items.Add(new ListItem("Yes", "True"));
radDefault.Items.Add(new ListItem("No", "False"));

或者,声明:

代码语言:javascript
复制
<asp:RadioButtonList runat="server" ID="radDefault" SelectedValue='<%# Bind("DB_FIELD") %>'>
    <asp:ListItem Value="False" Text="No" />
    <asp:ListItem Value="True" Text="Yes" />
</asp:RadioButtonList>
票数 4
EN

Stack Overflow用户

发布于 2015-04-01 00:01:53

我不喜欢使用css来隐藏项目的想法。相反,我发现this solution添加了一个空白项,但在后面的代码中将其删除。

代码语言:javascript
复制
<asp:RadioButtonList ID="MyRadioButtonList" runat="server" 
    SelectedValue='<%# Bind("Blah") %>' 
    OnDataBound="MyRadioButtonList_DataBound">
       <asp:ListItem Value=""></asp:ListItem>
       <asp:ListItem Value="A"></asp:ListItem>
       <asp:ListItem Value="B"></asp:ListItem>
       <asp:ListItem Value="C"></asp:ListItem>
 </asp:RadioButtonList>

protected void MyRadioButtonList_DataBound(object sender, EventArgs e)
 {
       RadioButtonList list = (RadioButtonList)sender;
       ListItem blank = list.Items.FindByValue("");
       if (blank != null)
          list.Items.Remove(blank);
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1050794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档