Repeater 为什么不激发 ItemCommand事件了?
2006-05-12 14:16
567 查看
设计了这么一个Repeater:
<asp:repeater id="Repeater1" runat="server" onitemcommand="Repeater1_ItemCommand" onitemcreated="Repeater1_ItemCreated">
<headertemplate>
<table border="1">
<tr>
<td>ItemID</td>
<td>ItemName</td>
<td><asp:button id="Button1" runat="server" commandname="Button1" text="Button1" /></td>
</tr>
</headertemplate>
<itemtemplate>
<tr>
<td><asp:linkbutton id="LinkButton1" runat="server" commandname="LinkButton1" text="LinkButton1" /></td>
</tr>
</itemtemplate>
<footertemplate>
</table>
</footertemplate>
</asp:repeater>
加载数据:
public DataTable CreateDataTable( int count)
protected void Page_Load(object sender, EventArgs e)
protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
<table border="1">
<tr>
<td>ItemID</td>
<td>ItemName</td>
<td><input type="submit" name="Button1" value="Button1" id="Button1" /></td>
</tr>
<tr>
<td>9</td>
<td>Item#9</td>
<td><a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton1</a></td>
</tr>
<tr>
<td>8</td>
<td>Item#8</td>
<td><a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton1</a></td>
</tr>
注释掉ItemCreated中访问ClientID代码:
protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
<table border="1">
<tr>
<td>ItemID</td>
<td>ItemName</td>
<td><input type="submit" name="Repeater1:_ctl0:Button1" value="Button1" id="Repeater1__ctl0_Button1" /></td>
</tr>
<tr>
<td>9</td>
<td>Item#9</td>
<td><a id="Repeater1__ctl1_LinkButton1" href="javascript:__doPostBack('Repeater1$_ctl1$LinkButton1','')">LinkButton1</a></td>
</tr>
<tr>
<td>8</td>
<td>Item#8</td>
<td><a id="Repeater1__ctl2_LinkButton1" href="javascript:__doPostBack('Repeater1$_ctl2$LinkButton1','')">LinkButton1</a></td>
</tr>
对比一下发现,Button的客户端ID不一样,猜想下原因可能是由于 ClientID不符合NameContainer规则,PostBack以后无法找到事件控件源。
Any Solutions?
<asp:repeater id="Repeater1" runat="server" onitemcommand="Repeater1_ItemCommand" onitemcreated="Repeater1_ItemCreated">
<headertemplate>
<table border="1">
<tr>
<td>ItemID</td>
<td>ItemName</td>
<td><asp:button id="Button1" runat="server" commandname="Button1" text="Button1" /></td>
</tr>
</headertemplate>
<itemtemplate>
<tr>
<td><asp:linkbutton id="LinkButton1" runat="server" commandname="LinkButton1" text="LinkButton1" /></td>
</tr>
</itemtemplate>
<footertemplate>
</table>
</footertemplate>
</asp:repeater>
加载数据:
public DataTable CreateDataTable( int count)
protected void Page_Load(object sender, EventArgs e)
protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
<table border="1">
<tr>
<td>ItemID</td>
<td>ItemName</td>
<td><input type="submit" name="Button1" value="Button1" id="Button1" /></td>
</tr>
<tr>
<td>9</td>
<td>Item#9</td>
<td><a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton1</a></td>
</tr>
<tr>
<td>8</td>
<td>Item#8</td>
<td><a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton1</a></td>
</tr>
注释掉ItemCreated中访问ClientID代码:
protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
<table border="1">
<tr>
<td>ItemID</td>
<td>ItemName</td>
<td><input type="submit" name="Repeater1:_ctl0:Button1" value="Button1" id="Repeater1__ctl0_Button1" /></td>
</tr>
<tr>
<td>9</td>
<td>Item#9</td>
<td><a id="Repeater1__ctl1_LinkButton1" href="javascript:__doPostBack('Repeater1$_ctl1$LinkButton1','')">LinkButton1</a></td>
</tr>
<tr>
<td>8</td>
<td>Item#8</td>
<td><a id="Repeater1__ctl2_LinkButton1" href="javascript:__doPostBack('Repeater1$_ctl2$LinkButton1','')">LinkButton1</a></td>
</tr>
对比一下发现,Button的客户端ID不一样,猜想下原因可能是由于 ClientID不符合NameContainer规则,PostBack以后无法找到事件控件源。
Any Solutions?
相关文章推荐
- Repeater.ItemCommand事件不激发?
- 许涛的 repeater itemCommand 事件代码(经典代码,不难)
- [Repeater]三個事件的執行先後?ItemDataBound / ItemCreated / ItemCommand
- Repeater 的操作,数据的显示,绑定,动态取控件中的值和Repeater1_ItemCommand事件的相关用法
- Repeater 的操作,数据的显示,绑定,动态取控件中的值和Repeater1_ItemCommand事件的相关用法
- [Repeater]三个事件的执行先后?ItemDataBound / ItemCreated / ItemCommand
- Repeater 控件的 ItemCommand 事件
- 牛腩购物 8 整合用户留言 动软生成器 ,.NET在后置代码中输入JS提示语句(背景不会变白),repeater 循环的时候事件判断,repeater 隔行 奇数行,item列,隐藏区块 Panel 的使用,前台绑定代码的时候使用函数
- repeater中的checkbox 的方法以及datalist中放了一个按牛!为什么我按该按牛时候不能触发ItemCommand事件的主要原因
- Repeater控件的ItemCreated事件实现权限与ItemCommand事件
- 如何在 Repeater 的事件中得到 当前 Item 绑定的数据
- 为什么在执行JCombobox的ItemStateChanged事件时默认执行两次
- 在asp:Repeater中的asp:LinkButton中按Id删除对应行的数据时用asp:Repeater的ItemCommand方法
- Repeater的ItemDataBound 事件中e.Item.DataItem 转换问题
- 其实repeater的ItemCreated和ItemCommand事件也蛮好用的。
- 其实repeater的ItemCreated和ItemCommand事件也蛮好用的。
- DataList的问题 - ItemCommand事件不响应
- repeat 的两个事件ItemDataBound和ItemCommand
- Android下listview每个Item中包含有按钮,为什么在点击某一行按钮的时候,同时有多行button触发了响应事件?
- Repeater数据控件的两个重要事件ItemDataBound 和 ItemCommand