2016-08-24 16 views
0

因此,我從我的數據庫中取出一個字符串,將其拆分,然後希望將拆分的數據塊放入中繼器的一個表中。混淆瞭如何將一個拆分字符串放入一個數據庫的中繼器中

我有其他的方法來拉取數據並顯示它,但它大多是列表框的,所以我對此不滿意,因爲表格會更好。

  var query = from q in Session.CurrentContext.MENU 
        where q.CycNum == 24 && q.PerID == 3 && q.CatID == 12 
        select new 
     { 
      Item = q.ButDesc 
     }; 
     rpt_menu.DataSource = query; 
     rpt_menu.DataBind(); 

我在db中的字符串存儲爲「text | text | text | text」,|將不同表格中的項目分開,但這種情況只是按照說明存儲的長字符串。 (Item)是中繼器中eval標籤的名稱。

顯然做

  char[] Sep = { '|' }; 
     string[] data = Convert.ToString(query).Split(Sep); 
     foreach (string x in data) 
     { 
      Item = x; 
     } 
      rpt_menu.DataSource = query; 
     rpt_menu.DataBind(); 

是行不通的,但它是什麼,我需要做的總體思路,任何提示將是有益的。

回答

0

可以使用RepeaterGridView控制時,GridView控件在HTML反正被轉換成HTML <table>呈現:

後面的代碼:

public partial class RepeaterExample : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!Page.IsPostBack) 
     { 
      var c1 = new ContextMenu { Title = "Context Menu 1", Items = "Menu1|Menu1|Menu1" }; 
      var c2 = new ContextMenu { Title = "Context Menu 2", Items = "Menu2|Menu2|Menu2" }; 
      rptMenu.DataSource = new List<ContextMenu> { c1, c2 }; 
      rptMenu.DataBind(); 
     } 
    } 

    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
     ContextMenu item = e.Item.DataItem as ContextMenu; 
     Label lblTitle = (Label)e.Item.FindControl("lblTitle"); 
     lblTitle.Text = item.Title; 

     GridView gvItems = (GridView)e.Item.FindControl("gvItems"); 
     gvItems.DataSource = item.Items.Split('|'); 
     gvItems.DataBind(); 
    } 
} 

public class ContextMenu 
{ 
    public string Title { get; set; } 
    public string Items { get; set; } 
} 

.ASPX:

<asp:Repeater ID="rptMenu" runat="server" OnItemDataBound="Repeater1_ItemDataBound"> 
    <ItemTemplate> 
     <asp:Label ID="lblTitle" runat="server" Font-Size="Large" Font-Bold="true"></asp:Label> 
     <asp:GridView ID="gvItems" runat="server"></asp:GridView> 
     <hr /> 
    </ItemTemplate> 
</asp:Repeater> 

複製上面的例子到一個新的.aspx頁>瞭解它是如何工作>適用於您的解決方案。

+0

完美地與一對夫婦調整,謝謝! – StackUser4545

相關問題