【发布时间】:2015-11-28 18:57:01
【问题描述】:
我尝试过发布相同主题的帖子,但没有成功。它实际上并没有触发事件
我想要什么
我想开火
ItemCommand 有人点击中继器时的事件。
问题
ItemCommand 未被触发。
EnableViewState=true
这里是代码:
HTML:
<table>
<asp:Repeater ID="outerRepeater" runat="server"
OnItemDataBound="outer_OnitemdataBound"
onitemcommand="outerRepeater_ItemCommand">
<ItemTemplate>
<asp:Repeater ID="Rgallery" runat="server">
<ItemTemplate>
<%# (Container.ItemIndex + 4) % 4 == 0 ? "<tr>" : string.Empty %>
<td>
<img src="<%# Eval("ImgPath") %>" style="height:300px; width:300px;" alt="" />
<div class="caption">
<h3><%# Eval("Type") %></h3>
<p><b><%# Eval("SubType") %></b></p>
<p{font-family: "Comic Sans MS", cursive, sans-serif; font-size: 25px}>Price:<i class="fa fa-inr fa-fw"><%# Eval("Price") %></i></p>
<p><asp:Button ID="btnBuy" CommandName="Buy" CommandArgument="Add to Cart" class="btn btn-primary" Text='<%# DataBinder.Eval(Container.DataItem, "Price") %>' runat="server" />
</p>
</div>
</td>
<%# (Container.ItemIndex + 4) % 4 == 3 ? "</tr>" : string.Empty%>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
<asp:Label ID="lblStatus" runat="server" ></asp:Label>
</table>
这是后面的代码
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dummy = new DataTable();
dummy.Columns.Add();
dummy.Rows.Add();
rptMain.DataSource = dummy;
rptMain.DataBind();
outerRepeater.DataSource = dummy;
outerRepeater.DataBind();
}
if (Page.IsPostBack)
{ return; }
}
protected void outerRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
// Here is a code I want to fire
}
protected void outer_OnitemdataBound(object sender, RepeaterItemEventArgs e)
{
Repeater repeater = e.Item.FindControl("RGallery") as Repeater;
repeater.DataSource = db.GetTable("SELECT `Did`, `Type`, `SubType`, `Gender`, `Price`, `ImgPath` FROM `designs` ORDER BY `Did` DESC");
repeater.DataBind();
}
到目前为止我已经尝试过什么
方法一
我已经放了onItemCommand="rptthumbnail_ItemCommand"但是我没有工作。
方法二
我在OnInit() 中添加了handlar 但我也没有工作。
请一些人确定是什么问题 请帮我解决这个问题.....
【问题讨论】:
-
我希望你想在点击按钮
btnBuy时触发外部中继器控件的ItemCommand事件?但是这个按钮存在于嵌套中继器中,因此将触发该中继器的itemCommand事件。
标签: asp.net repeater itemcommand