<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li><asp:Button CssClass="btn" runat="server" Text='<%#Eval("Text") %>' OnClick='<%#Eval("Click") %>' /></li>
</ItemTemplate>
</asp:Repeater>为什么生成出来的HTML代码变成:
<li><input type="submit" name="Repeater1$ctl00$ctl00" value="修改订单" onclick="UpdateOrder_Click;" class="btn" /></li>
<li><input type="submit" name="Repeater1$ctl01$ctl00" value="确认订单" onclick="OkOrder_Click;" class="btn" /></li>
<li><input type="submit" name="Repeater1$ctl02$ctl00" value="取消确认" onclick="CancelOrder_Click;" class="btn" /></li>注意onclick="UpdateOrder_Click;",这个分号是自动加上的,正因为这个分号,导致事件用不了.请问大家这该怎么解决?
包括这个button空间也是服务器的<asp:Button />控件
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li><asp:Button CssClass="btn" runat="server" Text='<%#Eval("Text") %>' CommandName="<%#Eval("Click") %>" CommandArgument='<%# Eval("你要传递的参数")%>' OnCommand="btn_Command"/></li>
</ItemTemplate>
</asp:Repeater>后台代码:
protected void btn_Command(object source, CommandEventArgs e)
{
string id = e.CommandArgument.ToString();
if (e.CommandName == "UpdateOrder_Click")
{
//dosomething
}
else if (e.CommandName == "OkOrder_Click")
{
//dosomething
}
else if (e.CommandName == "CancelOrder_Click")
{
//dosomething
}
else
{
//dosomething
}
}