我的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#
中执行此操作由于
答案 0 :(得分: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); }
}