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/1'转换为'true/false'。 – AsifAli72090