动态填充RadiobuttonList

时间:2010-10-12 18:01:02

标签: c# radiobuttonlist

我的ASP.net webform中有很多radiobuttonLists。我使用下面显示的方法动态绑定它们:

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();
            }
        }

现在,我想只显示RadioButton项目文本的DataTextField的第一个字母。

例如,如果值为好,我只想显示G.如果它公平,我想显示F。

我如何在C#

中执行此操作

由于

2 个答案:

答案 0 :(得分:3)

执行绑定时无法执行所需操作,因此您有两个选项:

  1. 在进行绑定之前,修改从表中获取的数据。

  2. 绑定后,浏览每个项目并修改其文本字段。

  3. 所以,你想要显示“只有RadioButton项目文本的DataTextField的第一个字母”,你可以这样做:

    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);
    

答案 1 :(得分:0)

您可以将属性添加到绑定的类型(包含Good,Fair等的类型)并绑定到此属性。如果你总是使用第一个字母,那么就可以这样做(当然还加入空检查):

    public string MyVar { get; set; }

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