您的位置:首页 > 其它

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?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐