Repeater 的ItemCommand事件不响应-----我遇到的诡异的问题(已解决)

原创 2007年09月27日 15:19:00
今天碰到一个页面,Repeater的Itemcommand事件死活不响应,网上搜了一搜,问的人还真多,可能解决的很少,估计是各有各的原因。像其他人所说的什么事件没有注册啊,ispostback没有判断啊等等,通通都不属于我存在的问题。我当时很是奇怪,因为我弄了个测试页面,上面只有一个repeater,没有其他任何东西,这个repeater就能响应的好好的。所以问题还是出现在那个页面上。经过反复试验,终于有了一个惊人的发现:
原来,页面上包含一个用户控件head011,内容大致如下
<script language="javascript" type="textjavascript">...
var domainroot="www.sina.com.cn"// 你的网站域名 
  function Gsitesearch(curobj)...
  curobj.q.value
="site:"+domainroot+" "+curobj.qfront.value 
  }
 
</script>
<form action="http://www.google.com/search" method="get" onSubmit="Gsitesearch(this)">注意此处很关键
    
<br>
    
<table width="765" border="0" align="center" cellpadding="0" cellspacing="0">
        
<tr>
            
<td width="250"><img src="images/l001.gif" width="250" height="61"></td>
            
<td width="510" valign="bottom"><table width="0" border="0" align="right" cellpadding="0" cellspacing="0">
                    
<tr>
                        
<td>
                            
&nbsp; <href="index.aspx" class="ch007">首页</a> <href="lxwm.aspx" class="ch007">
                                联系我们
</a> <href="yqlj.aspx" class="ch007"></a>
                        
</td>
                    
</tr>
                
</table>
            
</td>
        
</tr>
    
</table>
    
<table width="0" border="0" align="center" cellpadding="0" cellspacing="0">
        
<tr>
            
<td><img src="images/l002.gif" width="768" height="29"></td>
        
</tr>
    
</table>
    
<table width="768" border="0" align="center" cellpadding="0" cellspacing="0">
        
<tr>
            
<td width="247" height="23" background="images/l003.gif">&nbsp;</td>
            
<td width="307" background="images/l003.gif"><href="gywm_gsjj.aspx"><img src="images/l019.gif" width="62" height="23" border="0"></a><href="xw_lb.aspx"><img src="images/l020.gif" width="75" height="23" border="0"></a><href="tzzgx_llwm.aspx"><img src="images/l021.gif" width="86" height="23" border="0"></a><href="ywjs.aspx"><img src="images/l022.gif" width="60" height="23" border="0"></a></td>
            
<td width="64" background="images/l003.gif"><select name="select" size="1" class="table001">
                    
<option selected>标题</option>
                    
<option>内容</option>
                    
<option>作者</option>
                
</select></td>
            
<p>
                
<td width="110" background="images/l003.gif"><input name="q" type="hidden"><input name="qfront" type="text" class="table002" value="搜索内容" size="20"></td>
                
<td width="40" background="images/l003.gif"><input type="submit" class="table003" value="go"></td>
            
</p>
        
</tr>
    
</table>
</form>

而出问题的页面大致如下:
<%...@ Register TagPrefix="uc1" TagName="down02" Src="Controls/down02.ascx" %>
<%...@ Register TagPrefix="uc1" TagName="left01" Src="Controls/left01.ascx" %>
<%...@ Register TagPrefix="uc1" TagName="head01" Src="Controls/head01.ascx" %>
<%...@ Register TagPrefix="uc1" TagName="meta01" Src="Controls/meta01.ascx" %>
<%...@ Register TagPrefix="uc1" TagName="title01" Src="Controls/title01.ascx" %>
<%...@ Page CodeBehind="xzym.aspx.cs" Language="c#" AutoEventWireup="false" Inherits="Exhibition.web.xzym" %>
<HTML>
    
<HEAD>
        
<uc1:meta01 id="meta011" runat="server"></uc1:meta01>
        
<uc1:title01 id="title011" runat="server"></uc1:title01>
        
<link href="ch.css" rel="stylesheet" type="text/css">
    
</HEAD>
    
<body topmargin="0">
    
<form id="Form1" runat="server" method="post">注意此处很关键
        
<uc1:head01 id="head011" runat="server"></uc1:head01>注意此处很关键
        
<table width="0" border="0" align="center" cellpadding="0" cellspacing="0">
            
<tr>
                
<td><img src="images/l002.png" width="767" height="138"></td>
            
</tr>
        
</table>
        
<table width="767" border="0" align="center" cellpadding="0" cellspacing="0">
            
<tr>
                
<td width="190" valign="top" bgcolor="#f3f3f3">
                    
<uc1:left01 id="left011" runat="server"></uc1:left01>
                
</td>
                
<td width="580" valign="top"><table width="100%" height="33" border="0" align="center" cellpadding="0" cellspacing="0">
                        
<tr>
                            
<td width="580" height="33" background="images/l034.gif">&nbsp;<img src="images/l017.gif" width="10" height="11"><href="index.aspx" class="ch003">首页&gt;</a><href="#" class="ch008">
                                    下载页面
</a></td>
                        
</tr>
                    
</table>
                    
<br>
                    
<table width="90%" height="26" border="0" align="center" cellpadding="0" cellspacing="0">
                        
<tr>
                            
<td width="84%" background="../images/ch_l_063.gif" class="ch001">&nbsp;<span class="ch003"><strong>资料下载 
                                        :
</strong></span></td>
                            
<td width="16%" background="../images/ch_l_063.gif" class="ch004">点击下载</td>
                        
</tr>
                    
</table>
                    
<asp:Repeater id="Repeater1" runat="server">
                        
<HeaderTemplate>
                            
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
                                
<tr>
                                    
<td align="center" valign="top" background="../images/ch_l_066.gif">
                        
</HeaderTemplate>
                        
<ItemTemplate>
                            
<table width="511" height="65" border="0" cellpadding="0" cellspacing="0">
                                
<tr>
                                    
<td width="429" height="65" align="left" class="ch007"><%...# DataBinder.Eval(Container, "DataItem.FileDownName")%>(<%...# DataBinder.Eval(Container, "DataItem.FileSize")%>)</td>
                                    
<td width="82" align="center"><asp:ImageButton id="lbtn_download2" runat="server" ImageUrl ="../images/ch_l_067.gif" Width="35" Height ="28" BorderWidth ="0" CommandName ="download" CommandArgument ='<%# DataBinder.Eval(Container, "DataItem.FileID")%>'></asp:ImageButton><span class="ch005"><br />
                    Download
</span></td>
                                
</tr>
                            
</table>
                        
</ItemTemplate>
                        
<AlternatingItemTemplate>
                            
<table width="511" height="65" border="0" cellpadding="0" cellspacing="0">
                                
<tr>
                                    
<td width="429" height="65" align="left" class="ch007"><%...# DataBinder.Eval(Container, "DataItem.FileDownName")%>(<%...# DataBinder.Eval(Container, "DataItem.FileSize")%>)</td>
                                    
<td width="82" align="center"><asp:ImageButton id="ibtn_download1" runat="server" ImageUrl ="../images/ch_l_068.gif" Width ="35" Height ="28" BorderWidth ="0" CommandName ="download" CommandArgument ='<%# DataBinder.Eval(Container, "DataItem.FileID")%>'></asp:ImageButton><span class="ch005"><br />
                    Download
</span></td>
                                
</tr>
                            
</table>
                        
</AlternatingItemTemplate>
                        
<FooterTemplate>
                
</td>
            
</tr>
        
</table>
        
</FooterTemplate> </asp:Repeater>
        
<table width="0" border="0" align="center" cellpadding="0" cellspacing="0">
            
<tr>
                
<td><img src="../images/dna01.gif" width="500" height="9"></td>
            
</tr>
        
</table>
        
<table width="0" border="0" align="center" cellpadding="0" cellspacing="0">
            
<tr>
                
<td><img src="../images/ch_l_056.gif" width="550" height="10"></td>
            
</tr>
        
</table>
        
</td> </tr> </table>
        
<uc1:down02 id="down021" runat="server"></uc1:down02>
        
</form>
    
</body>
</HTML>

这样的两个分别都要提交的FROM的结构,存在问题,导致了Itemcommand的事件不能响应。我虽然找到了原因,但并不知道原理是什么,还请高手赐教,不胜感激。
所以针对我的这个页面的问题来说,就很好解决了,把页面改成如下的结构,问题就迎刃而解了:
<%...@ Register TagPrefix="uc1" TagName="down02" Src="Controls/down02.ascx" %>
<%...@ Register TagPrefix="uc1" TagName="left01" Src="Controls/left01.ascx" %>
<%...@ Register TagPrefix="uc1" TagName="head01" Src="Controls/head01.ascx" %>
<%...@ Register TagPrefix="uc1" TagName="meta01" Src="Controls/meta01.ascx" %>
<%...@ Register TagPrefix="uc1" TagName="title01" Src="Controls/title01.ascx" %>
<%...@ Page CodeBehind="xzym.aspx.cs" Language="c#" AutoEventWireup="false" Inherits="Exhibition.web.xzym" %>
<HTML>
    
<HEAD>
        
<uc1:meta01 id="meta011" runat="server"></uc1:meta01>
        
<uc1:title01 id="title011" runat="server"></uc1:title01>
        
<link href="ch.css" rel="stylesheet" type="text/css">
    
</HEAD>
    
<body topmargin="0">
         
<uc1:head01 id="head011" runat="server"></uc1:head01>注意此处很关键---------将这句话提到FORM的外面去
    
<form id="Form1" runat="server" method="post">    注意此处很关键    
        
<table width="0" border="0" align="center" cellpadding="0" cellspacing="0">
            
<tr>
                
<td><img src="images/l002.png" width="767" height="138"></td>
            
</tr>
        
</table>
        
<table width="767" border="0" align="center" cellpadding="0" cellspacing="0">
            
<tr>
                
<td width="190" valign="top" bgcolor="#f3f3f3">
                    
<uc1:left01 id="left011" runat="server"></uc1:left01>
                
</td>
                
<td width="580" valign="top"><table width="100%" height="33" border="0" align="center" cellpadding="0" cellspacing="0">
                        
<tr>
                            
<td width="580" height="33" background="images/l034.gif">&nbsp;<img src="images/l017.gif" width="10" height="11"><href="index.aspx" class="ch003">首页&gt;</a><href="#" class="ch008">
                                    下载页面
</a></td>
                        
</tr>
                    
</table>
                    
<br>
                    
<table width="90%" height="26" border="0" align="center" cellpadding="0" cellspacing="0">
                        
<tr>
                            
<td width="84%" background="../images/ch_l_063.gif" class="ch001">&nbsp;<span class="ch003"><strong>资料下载 
                                        :
</strong></span></td>
                            
<td width="16%" background="../images/ch_l_063.gif" class="ch004">点击下载</td>
                        
</tr>
                    
</table>
                    
<asp:Repeater id="Repeater1" runat="server">
                        
<HeaderTemplate>
                            
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
                                
<tr>
                                    
<td align="center" valign="top" background="../images/ch_l_066.gif">
                        
</HeaderTemplate>
                        
<ItemTemplate>
                            
<table width="511" height="65" border="0" cellpadding="0" cellspacing="0">
                                
<tr>
                                    
<td width="429" height="65" align="left" class="ch007"><%...# DataBinder.Eval(Container, "DataItem.FileDownName")%>(<%...# DataBinder.Eval(Container, "DataItem.FileSize")%>)</td>
                                    
<td width="82" align="center"><asp:ImageButton id="lbtn_download2" runat="server" ImageUrl ="../images/ch_l_067.gif" Width="35" Height ="28" BorderWidth ="0" CommandName ="download" CommandArgument ='<%# DataBinder.Eval(Container, "DataItem.FileID")%>'></asp:ImageButton><span class="ch005"><br />
                    Download
</span></td>
                                
</tr>
                            
</table>
                        
</ItemTemplate>
                        
<AlternatingItemTemplate>
                            
<table width="511" height="65" border="0" cellpadding="0" cellspacing="0">
                                
<tr>
                                    
<td width="429" height="65" align="left" class="ch007"><%...# DataBinder.Eval(Container, "DataItem.FileDownName")%>(<%...# DataBinder.Eval(Container, "DataItem.FileSize")%>)</td>
                                    
<td width="82" align="center"><asp:ImageButton id="ibtn_download1" runat="server" ImageUrl ="../images/ch_l_068.gif" Width ="35" Height ="28" BorderWidth ="0" CommandName ="download" CommandArgument ='<%# DataBinder.Eval(Container, "DataItem.FileID")%>'></asp:ImageButton><span class="ch005"><br />
                    Download
</span></td>
                                
</tr>
                            
</table>
                        
</AlternatingItemTemplate>
                        
<FooterTemplate>
                
</td>
            
</tr>
        
</table>
        
</FooterTemplate> </asp:Repeater>
        
<table width="0" border="0" align="center" cellpadding="0" cellspacing="0">
            
<tr>
                
<td><img src="../images/dna01.gif" width="500" height="9"></td>
            
</tr>
        
</table>
        
<table width="0" border="0" align="center" cellpadding="0" cellspacing="0">
            
<tr>
                
<td><img src="../images/ch_l_056.gif" width="550" height="10"></td>
            
</tr>
        
</table>
        
</td> </tr> </table>
        
<uc1:down02 id="down021" runat="server"></uc1:down02>
        
</form>
    
</body>
</HTML>

我的问题是解决了。可我最终还是不知道,为什么将那个包含一个form的<uc1>提到页面Form标签的外面去,就能解决这个问题。换句话说,为什么<uc1>放到页面的Form标签的里面,就能造成itemcommand事件的不响应呢??盼望高手的解答。。。。。。

Repeater1_ItemCommand

• ...
  • manyi74
  • manyi74
  • 2014年10月11日 11:33
  • 817

Repeater 的操作,数据的显示,绑定,动态取控件中的值和Repeater1_ItemCommand事件的相关用法

%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>  ...
  • asdf1213321
  • asdf1213321
  • 2012年11月22日 23:23
  • 5619

Repeater嵌套内层Repeater绑定ItemCommand事件

Aspx:                                 删除             >                                 ...
  • huangwei999111
  • huangwei999111
  • 2015年11月13日 09:21
  • 980

Repeater数据控件的两个重要事件ItemDataBound 和 ItemCommand

1   ItemDataBound:数据绑定的时候(正在进行时)发生。 2   ItemCommand :用来响应Item模板中的控件的事件。 如下代码 aspx代码: ...
  • zhifeiya
  • zhifeiya
  • 2013年06月04日 22:05
  • 5578

ItemCommand不响应的问题

      开发中遇到了ItemCommand不响应的问题,郁闷中在网上找到了这篇对症下药的文章,共享出来。感谢共享的这位xd了。原文如下:       在写一个DataList按钮事件时,遇到一个问...
  • kevinwhite
  • kevinwhite
  • 2007年06月22日 11:37
  • 792

ItemCommand事件不响应

前两天遇到一个问题,在DataList中加了LinkButton来删除当前记录,却发现怎么也不起作用。设置断点跟踪,发现ItemCommand事件根本无法响应。调试了老半天不知原因。上网Google一...
  • guoguo20070720
  • guoguo20070720
  • 2007年08月28日 11:59
  • 380

DataList.ItemCommand 事件

 一、方法1、DataBind很简单、最常用的方法。绑定数据用。需要注意的只有一点:执行了这个方法后,DataGrid(由于DataGrid和DataList极为相似,所以下面的介绍虽然是针对Data...
  • xssh913913
  • xssh913913
  • 2007年12月06日 11:40
  • 1958

ItemCommand事件不响应

在重写Blog过程中,在DataList中加了LinkButton来删除当前记录,却发现怎么也不起作用。设置断点跟踪,发现ItemCommand事件根本无法响应。调试了老半天不知原因。上网Google...
  • bn007
  • bn007
  • 2007年01月11日 11:08
  • 1643

Repeater 控件的 ItemCommand 事件

下面的示例演示如何指定和编写 Repeater控件的 ItemCommand 事件的处理程序。 当单击 Repeater控件中的某个 Button控件时,会显示有关该按钮的信息。 ...
  • netzmj
  • netzmj
  • 2011年11月28日 21:46
  • 469

ItemCommand,ItemDataBound事件中获取已绑定行的字段的值和服务器端控件

LinkButton link1 = e.Item.FindControl("LinkButton1") as LinkButton;
  • u012596391
  • u012596391
  • 2014年03月11日 10:20
  • 713
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Repeater 的ItemCommand事件不响应-----我遇到的诡异的问题(已解决)
举报原因:
原因补充:

(最多只允许输入30个字)