如何理解转发器中选择了哪些行?
how to understand which rows selected in repeater?
我有一张图片从 sql 服务器加载的幻灯片。
这是我的 html 代码:
<!-- Elastislide Carousel -->
<ul id="Ul1" class="elastislide-list">
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<li>
<asp:Label ID="lbl" runat="server" Text='<%#Eval("IDMusic") %>' Visible="True"></asp:Label>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl='<%#Eval("ImageUrl") %>' Width="250px" Height="250px" OnClick="ImageButton1_Click" />
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
<!-- End Elastislide Carousel -->
<br /><br />
</div>
</div>
现在,我 运行 项目和用户单击其中一个图像按钮,我想了解 he/she 单击了什么?例如 he/she 单击第二个 ImageButton,然后我想将 IDMusic 保存到会话中并在另一个页面中使用此会话,但我不知道如何让 IDmusic 用户点击?
这是我的代码:
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
foreach (RepeaterItem item in Repeater2.Items)
{
Label lbl = (Label)item.FindControl("lbl");
if (lbl != null)
{
Session["selectedmusicID"] = lbl.Text;
}
}
Response.Redirect("music.aspx");
}
在处理对图像本身的点击时,没有简单的方法可以做到这一点。但是,您可以在此处利用 ItemCommand
事件,这是一个转发器事件。基本上,当在中继器内单击某些控件时,它会在中继器中生成一个您可以处理的命令,并且您可以为它提供特定于项目的参数。
定义命令和参数:
<asp:ImageButton ID="ImageButton1" ... CommandName="Select" CommandArgument='<%#Eval("IDMusic") %>' />
这里的命令名是自定义的,随便选吧。现在订阅转发器的事件:
<asp:Repeater ID="Repeater2" runat="server"
OnItemCommand="Repeater2_ItemCommand">
并处理:
protected void Repeater2_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "Select") //just in case you have more than one
{
e.CommandArgument //here is your ID
}
}
我有一张图片从 sql 服务器加载的幻灯片。
这是我的 html 代码:
<!-- Elastislide Carousel -->
<ul id="Ul1" class="elastislide-list">
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<li>
<asp:Label ID="lbl" runat="server" Text='<%#Eval("IDMusic") %>' Visible="True"></asp:Label>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl='<%#Eval("ImageUrl") %>' Width="250px" Height="250px" OnClick="ImageButton1_Click" />
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
<!-- End Elastislide Carousel -->
<br /><br />
</div>
</div>
现在,我 运行 项目和用户单击其中一个图像按钮,我想了解 he/she 单击了什么?例如 he/she 单击第二个 ImageButton,然后我想将 IDMusic 保存到会话中并在另一个页面中使用此会话,但我不知道如何让 IDmusic 用户点击?
这是我的代码:
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
foreach (RepeaterItem item in Repeater2.Items)
{
Label lbl = (Label)item.FindControl("lbl");
if (lbl != null)
{
Session["selectedmusicID"] = lbl.Text;
}
}
Response.Redirect("music.aspx");
}
在处理对图像本身的点击时,没有简单的方法可以做到这一点。但是,您可以在此处利用 ItemCommand
事件,这是一个转发器事件。基本上,当在中继器内单击某些控件时,它会在中继器中生成一个您可以处理的命令,并且您可以为它提供特定于项目的参数。
定义命令和参数:
<asp:ImageButton ID="ImageButton1" ... CommandName="Select" CommandArgument='<%#Eval("IDMusic") %>' />
这里的命令名是自定义的,随便选吧。现在订阅转发器的事件:
<asp:Repeater ID="Repeater2" runat="server"
OnItemCommand="Repeater2_ItemCommand">
并处理:
protected void Repeater2_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "Select") //just in case you have more than one
{
e.CommandArgument //here is your ID
}
}