2017年2月28日火曜日

[ASP.NET]RadioButtonListでNULLの値がセットできない時の回避法

エラー内容:
追加情報:項目一覧に存在しないため、'rdo******' に SelectedValue を指定することは無効です。

NULLはありえないデータだから…ということなのか。回避方法としては以下をおこなった。
①NULLの選択肢をダミーで用意する。  データセットするSQL文を以下の様にしてUNION ALL でダミーを作る。  (最初に作らないと後がややこしいのでデータ段階から行うのがよい SELECT '' as val, '' as tmp UNION ALL SELECT CAST([情報値] AS varchar) , [情報1] FROM M_マスタ ②【rdo_DataBound_NullDisplayNone】等の関数を介してNULLの選択肢を見えなくする。 aspx <asp:RadioButtonList id="rdotest" OnLoad="rdo_DataBound_NullDisplayNone" … cs protected void rdo_DataBound_NullDisplayNone(object sender, EventArgs e) { var rdolst = (RadioButtonList)sender; foreach (ListItem item in rdolst.Items) { if ((item.Value ?? "") == "") { item.Attributes.Add("style", "display:none;"); item.Enabled = false; } } } これでNULL値をセットしてもエラーがでなくなった。

0 件のコメント:

コメントを投稿