Заполнение RadiobuttonList динамически - PullRequest
1 голос
/ 12 октября 2010

У меня довольно много списков радиокнопок в моей веб-форме ASP.net.Я динамически связываю их, используя метод, показанный ниже:

public static void PopulateRadioButtonList(DataTable currentDt, RadioButtonList currentRadioButtonList, string strTxtField, string txtValueField,
            string txtDisplay)
        {
            currentRadioButtonList.Items.Clear();
            ListItem item = new ListItem();
            currentRadioButtonList.Items.Add(item);
            if (currentDt.Rows.Count > 0)
            {
                currentRadioButtonList.DataSource = currentDt;
                currentRadioButtonList.DataTextField = strTxtField;
                currentRadioButtonList.DataValueField = txtValueField;
                currentRadioButtonList.DataBind();
            }
            else
            {
                currentRadioButtonList.Items.Clear();
            }
        }

Теперь я хочу отобразить только первую букву DataTextField для текста элемента RadioButton.

Например, если значениеХорошо, я просто хочу отобразить G. Если честно, я хочу отобразить F.

Как мне сделать это в C #

Спасибо

Ответы [ 2 ]

3 голосов
/ 12 октября 2010

Вы не можете делать то, что хотите, когда делаете привязку, поэтому у вас есть 2 варианта:

  1. Измените данные, которые вы получаете из таблицы, прежде чем выполнять привязку.

  2. После привязки просмотрите каждый элемент и измените его текстовое поле.

Итак, вы хотите отобразить «только первую буквуDataTextField для текста элемента RadioButton ", вы можете сделать:

currentRadioButtonList.DataSource = currentDt;
currentRadioButtonList.DataTextField = strTxtField;
currentRadioButtonList.DataValueField = txtValueField;
currentRadioButtonList.DataBind();

foreach (ListItem item in currentRadioButtonList.Items) 
    item.Text = item.Text.Substring(0, 1);

Если я вас неправильно понял и вы хотите отобразить первую букву поля Значение, вы можете заменить две последние строки на:

foreach (ListItem item in currentRadioButtonList.Items) 
    item.Text = item.Value.Substring(0, 1);
0 голосов
/ 12 октября 2010

Вы можете добавить свойство к типу, который привязан (тот, который содержит Good, Fair и т. Д.) И привязать к этому свойству. Если вы всегда будете использовать первую букву, вы можете сделать это так (добавив в пустые проверки, конечно):

    public string MyVar { get; set; }

    public string MyVarFirstChar
    {
        get { return MyVar.Substring(0, 2); }
    }
...