2010-10-12 169 views
1

我在我的ASP.net webform中有很多radiobuttonLists。我使用如下所示的方法動態結合他們:動態填充RadiobuttonList

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爲單選項目僅文本的第一個字母。

例如,如果值是好,我只是想顯示G.如果博會我想顯示F.

我怎麼做這在C#

感謝

回答

3

你可以用」做T,當你做綁定你想要什麼,所以你有兩個選擇:

  1. 修改你從表中獲取數據,你做綁定之前。

  2. 綁定後,遍歷每個項目並修改其文本字段。

所以,要顯示「只有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); 
+0

丹對不起,它不工作的strTxtField值是「VAL_ID」這就是爲什麼它是顯示所有值的V值。 VAL_ID是數據庫表字段而不是實際值。 – acadia 2010-10-12 18:46:23

+0

@acadia - 我不太明白你在說什麼。用你的原始代碼(所以沒有我的foreach),你會得到「VAL_ID」在RadioButtonList中的所有值? – 2010-10-12 19:25:18

+0

@acadia - 另請參閱我的編輯。 – 2010-10-12 19:32:59

0

你可以添加一個屬性被綁定類型(在一個包含好,一般,等),並結合這個性質。如果你總是會使用的第一個字母,你可以把它像這樣(加在null檢查,當然):

public string MyVar { get; set; } 

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