2013-10-23 60 views
0

嗨,我建立一個在線體育用品商店,
我裝的這個計劃在所有的體育類型的主頁,喜歡足球,板球,籃球等
和管理員還可在他自己的意志創造一個遊戲,創建在asp.net動態中繼

這裏的混亂
如何顯示每個遊戲的子類別,如果點擊(中繼器內)。
我想添加一個ImageButton它!但後來我怎麼是圖像按鈕鏈接到遊戲,即當用戶點擊相應的圖片按鈕 - >那場比賽中的子類別應顯示

例如:
1.如果我有遊戲,如板球,足球等
2.中繼器應顯示爲轉發
3.所有的遊戲,當用戶點擊比如板球
4.我想裝載蟋蟀貨物的所有子類別,如BAT,BALL ,STUMPS等

我試圖通過加載遊戲Repeater,如下面的代碼片段所示:

 <asp:Repeater ID="RepDetails" runat="server" 
     ondatabinding="RepDetails_DataBinding"> 
     <HeaderTemplate> 
      <table style="border: 1px solid #df5015; width: 500px" cellpadding="0"> 
       <tr style="background-color: #df5015; color: White"> 
        <td colspan="2"> 
         <b>Type of Sports</b> 
        </td> 
       </tr> 
     </HeaderTemplate> 
     <ItemTemplate> 
      <tr style="background-color: #EBEFF0"> 
       <td> 
        <table style="background-color: #EBEFF0; border-top: 1px dotted #df5015; width: 500px"> 
         <tr> 
          <td> 
           <asp:Label ID="Label1" runat="server" Text='<%#Eval("Id") %>' /> 
          </td> 
          <td> 
           <asp:Label ID="lblSubject" runat="server" Text='<%#Eval("Category") %>' Font-Bold="true" /> 
          </td> 
          <td> 
           <asp:ImageButton ID="ImageButton1" runat="server" OnClick="ImageButton2_Click" /> 
          </td> 
         </tr> 
        </table> 
       </td> 
      </tr> 
     </ItemTemplate> 
     <FooterTemplate> 
      </table> 
     </FooterTemplate> 
    </asp:Repeater> 

我甚至增加了ImageButton但困惑使其加載遊戲的各個分類!

建議,歡迎,如果有可能圍繞着可以更有效的另一部作品..

+0

-1:用於使用損壞的鍵盤。請檢查您的轉換/大寫鎖定 - 它看起來像隨機卡住,因爲您的文章中有大量的大寫文字。您可以嘗試縮小樣本以使問題更好。 –

+0

我故意這樣做,以吸引注意力! – user2866238

+0

要在imagebutton上進行鏈接,爲了顯示子類別,您可以使用ajax方法來動態加載子類別或者您可以使用'TreeView' Control ..休息你問的問題非常廣泛,實際上有很多方法.. –

回答

1

你可以嘗試嵌套轉發

在ASPX

<asp:Repeater ID="RepDetails" runat="server" OnDataBinding="RepDetails_DataBinding"> 
    <HeaderTemplate> 
     <table style="border: 1px solid #df5015; width: 500px" cellpadding="0"> 
      <tr style="background-color: #df5015; color: White"> 
       <td colspan="2"> 
        <b>Type of Sports</b> 
       </td> 
      </tr> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <tr style="background-color: #EBEFF0"> 
      <td> 
       <table style="background-color: #EBEFF0; border-top: 1px dotted #df5015; width: 500px"> 
        <tr> 
         <td> 
          <asp:Label ID="Label1" runat="server" Text='<%#Eval("Id") %>' /> 
         </td> 
         <td> 
          <asp:Label ID="lblSubject" runat="server" Text='<%#Eval("Category") %>' Font-Bold="true" /> 
         </td> 
         <td> 
          <asp:ImageButton ID="ImageButton1" runat="server" OnClick="ImageButton2_Click" /> 
         </td> 
        </tr> 
       </table> 
      </td> 
     </tr> 
     <asp:Repeater ID="SportsProps" runat="server"> 
      <ItemTemplate> 
       <tr style="background-color: #EBEFF0"> 
        <td> 
         <table style="background-color: #EBEFF0; border-top: 1px dotted #df5015; width: 500px"> 
          <tr> 
           <td> 
            <asp:Label ID="lblSubject" runat="server" Text='<%#Eval("Name") %>' Font-Bold="true" /> 
           </td> 
           <td> 
            <asp:ImageButton ID="ImageButton3" runat="server" OnClick="ImageButton3_Click" /> 
           </td> 
          </tr> 
         </table> 
        </td> 
       </tr> 
      </ItemTemplate> 
     </asp:Repeater> 
    </ItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 

在後面的代碼

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      RepDetails.DataSource = GetData(); 
      RepDetails.DataBind(); 
     } 
    } 

    protected void ImageButton2_Click(object sender, ImageClickEventArgs e) 
    { 
     Repeater repeater = ((ImageButton)sender).NamingContainer.FindControl("SportsProps") as Repeater; 
     Label catLabel = ((ImageButton)sender).NamingContainer.FindControl("lblSubject") as Label; 
     repeater.DataSource = GetDataDetail(catLabel.Text); 
     repeater.DataBind(); 
    } 

    protected void ImageButton3_Click(object sender, ImageClickEventArgs e) 
    { 
     //do something to hide the 
    } 

    private DataTable GetData() 
    { 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("id", typeof(string)); 
     dt.Columns.Add("category", typeof(string)); 
     dt.Rows.Add("1 ", "Basketball"); 
     dt.Rows.Add("2 ", "Football"); 
     dt.Rows.Add("3 ", "Soccer"); 
     return dt; 
    } 

    private DataTable GetDataDetail(string category) 
    { 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("name", typeof(string)); 
     dt.Rows.Add("Bat"); 
     dt.Rows.Add("Ball"); 
     dt.Rows.Add("Stump"); 
     return dt; 
    }