C# 在asp.net中创建动态转发器
您好,我正在建立一个在线体育用品商店,C# 在asp.net中创建动态转发器,c#,asp.net,asprepeater,C#,Asp.net,Asprepeater,您好,我正在建立一个在线体育用品商店, 我在主页的所有运动类型中都有此加载计划,如足球、板球、篮球等 管理员可以根据自己的意愿创建一个游戏 这里是困惑 如果单击(在转发器内),如何显示每个游戏的子类别。 我想给它添加一个ImageButton!!但是,如何将该图像按钮链接到游戏,即当用户单击相应的图像按钮->时,应显示该游戏的子类别 例如: 1.如果我有板球、足球等运动 2.中继器应显示中继器中的所有游戏 3.当用户单击例如Cricket时 4.我希望加载板球商品的所有子类别,如球棒、球、树桩等
我在主页的所有运动类型中都有此加载计划,如足球、板球、篮球等
管理员可以根据自己的意愿创建一个游戏 这里是困惑
如果单击(在转发器内),如何显示每个游戏的子类别。
我想给它添加一个
ImageButton
!!但是,如何将该图像按钮链接到游戏,即当用户单击相应的图像按钮->时,应显示该游戏的子类别例如:
1.如果我有板球、足球等运动
2.中继器应显示中继器中的所有游戏
3.当用户单击例如Cricket时
4.我希望加载板球商品的所有子类别,如球棒、球、树桩等 我尝试在
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
,但对于让它加载游戏的各个子类别感到困惑
如果有其他更有效的解决方法,欢迎您提出建议。您可以尝试嵌套中继器 在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>
-1:使用坏掉的键盘。请检查你的班次/大写字母-它似乎被随机卡住,因为你的帖子中有大量大写字母文本。你们可以试着缩小样本,使问题变得更好。我是故意这样做的,目的是引起大家的注意!要在imagebutton上链接,要显示子类别,可以使用ajax方法动态加载子类别,也可以使用
TreeView
控件。。你们所问的是一个非常宽泛的问题,其实有很多方法。谢谢你们的回答!!你能让我描述一下我如何知道用户现在至少点击了哪个imagebutton,这样我就可以开始工作了,我还会查看treeView。。。thanks@user2866238您需要了解标记格式,以正确的格式突出显示文本。。;对我来说,在整句话中使用大写并不会突出重点,反而会分散读者的注意力,显示出问题的低质量
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;
}