2

私はC#、Asp.Net 4.0、Telerikを使用しており、RadComboBoxを操作しようとしています。

私はそれを次のようなエンティティデータソースで埋めています:

<RadComboBox ID="cbMyCombo" runat="server" AutoPostBack="true" CheckBoxes="true" DataSourceID="edsMySource" DataTextField="Name" DataValueField="Number">

これで、データベースから正しく入力されましたが、すべてのアイテムがチェックされていません...次のプロパティ "CheckBoxes = true"を追加してチェックしようとしましたが、機能しません...

私はこのように背後のコードでそれを変更しようとしました:

protected override void OnLoad(EventArgs e)
{
  base.OnLoad(e);

  for (int i = 0; i < cbMyCombo.Items.Count; i++)
    {
      cbMyCombo.Items[i].Checked = true;
    }
  }
}

良い試み、葉巻はありません...

ページのライフサイクルの間違った瞬間にやっているような気がしますが、正しく作る方法がわかりません...

4

2 に答える 2

5

これを試して

OnItemDataBoundイベントを追加しますRadCombobox

このような

protected void RadComboBox1_ItemDataBound(object o, RadComboBoxItemEventArgs e) 
{ 
    e.Item.Checked = true;
}
于 2012-07-11T06:39:42.573 に答える
1

このシナリオを処理する別の方法があります。コンボ ボックス内のすべての項目をチェックすることだけが必要な場合は、クライアント側でも行うことができます。RadControls は豊富なクライアント サイド API サポートを備えているため、クライアント サイド自体からコントロールをいじることができます。

このシナリオを説明するために、小さな例を試しました。ページに次の radcomboboix が定義されています。

<telerik:RadComboBox runat="server" CheckBoxes="true" OnClientLoad="clientLoadHandler"
        ID="radCombo"></telerik:RadComboBox>

コンボボックスに名前を付け、CheckBoxes を true に設定し、クライアント側のイベント ハンドラー OnClientLoad を追加しました。この例では、以下のようにサーバーからデータ ソースをバインドしています。

 List<string> colors = new List<string>
        {
            "Violet",
            "Indigo",
            "Blue",
            "Green",
            "Yellow",
            "Orange",
            "Red"
        };
        radCombo.DataSource = colors;
        radCombo.DataBind();

ここにJavaScript関数があります:

function clientLoadHandler(sender) {
            var combo = sender;
            var items = combo.get_items();
            var itemCount = items.get_count()
            for (var counter = 0; counter < itemCount; counter++) {
                var item = items.getItem(counter);
                item.set_checked(true)
            }
        }

ご覧のとおり、関数の送信者パラメーターはコンボボックスです。コンボボックスからアイテムを取得し、各アイテムをループして、set_checked(boolean) 関数を使用してそのチェック済みプロパティを設定します。

この情報がお役に立てば幸いです。このソリューションについてどう思うか教えてください。

Lohith (Telerik India テック エバンジェリスト)

于 2012-07-11T08:17:29.897 に答える