2017-09-14 71 views
0

我们已经在我们Repeater控件以下单选按钮列表:在Repeater控件处理空值的单选按钮列表

<asp:RadioButtonList ID="rdlmhorsepType" Text='<%#string.IsNullOrEmpty((string)Eval("rdlmhorsepType")) ? "Electric Start" : Eval("rdlmhorsepType") %>' runat="server" ValidationGroup ="stype" RepeatDirection="Horizontal" TextAlign="Right" style="display:inline;" AutoPostBack="true" OnSelectedIndexChanged="rblPurchaseType_SelectedIndexChanged"> 
    <asp:ListItem Text="Electric Start" /> 
    <asp:ListItem Text="Recoil" /> 
</asp:RadioButtonList><br /> 

我们正常的业务流程需要用户输入帐号,检查与该帐号相关记录是否存在。

如果存在记录,则使用这些记录填充Repeater控件表单。

用户随后可以进行任何他们想做的修改。

这部分工作很好。

如果没有记录存在,用户需要输入他/她的信息并提交给数据库。

这是我们遇到问题的地方。

这一个问题,因为如果没有从rdlmhorsepType值的数据库已经存在,以下引发错误:

“rdlmhorsepType”具有的SelectedValue这是无效的,因为它没有在列表中存在项目。参数名:价值

既然有在rdlmhorsepType RadioButtonList控件两个数值,我用Electric Start作为默认值,以消除误差。

问题是,Electric Start总是被插入到数据库中,并始终显示为选定的值。

我试图使用0为:

Text='<%#string.IsNullOrEmpty((string)Eval("rdlmhorsepType")) ? "0" : Eval("rdlmhorsepType") %>' 

但它抛出同样的错误。

任何想法如何解决这个错误,它允许从数据库中显示正确的选定值?

顺便说一下该错误,指出该数据库表用于初始化数据表中的值:

 dr = dt.NewRow(); 
     dr["RowNumber"] = 1; 
     dr["rdlmhorsepType"] = string.Empty; 
     dr["rblIssues"] = string.Empty; 
     dr["vesseltypeUse"] = string.Empty; 
     dt.Rows.Add(dr); 
    } 
    else 
    { 
     dt = (DataTable)ViewState["CurrentTable"]; 
    } 
    //Store the DataTable in ViewState for future reference 
    ViewState["CurrentTable"] = dt; 
    if (dt.Rows.Count > 0) 
    { 
     //Bind the Repeater with the DataTable 
     Repeater2.DataSource = dt; 
     Repeater2.DataBind(); 
    } 
} 
+0

尝试改变列表项值由'0/1'转换为'true/false'。 – AsifAli72090

回答

0

添加属性列表项如下面的代码

<asp:RadioButtonList ID="rdlmhorsepType" Text='<%#string.IsNullOrEmpty((string)Eval("rdlmhorsepType")) ? "Electric Start" : Eval("rdlmhorsepType") %>' runat="server" ValidationGroup ="stype" RepeatDirection="Horizontal" TextAlign="Right" style="display:inline;" AutoPostBack="true" OnSelectedIndexChanged="rblPurchaseType_SelectedIndexChanged"> 
     <asp:ListItem Value="0" Text="Electric Start" /> 
     <asp:ListItem Value="1" Text="Recoil" /> 
    </asp:RadioButtonList><br />