2009-10-23 5 views
0

다음과 같은 템플릿 필드가있는 <asp:gridview>이 있습니다. 각 셀에는 링크가있는 이미지와 링크가있는 텍스트가 있습니다. 이있다 AllowPaging = 진정한asp : gridview 페이지 매김의 System.Web.HttpException

이가있는 gridview입니다 :

<asp:GridView ID="gvExperiencias" runat="server" AllowPaging="True" GridLines="None" 
    ShowHeader="False" AutoGenerateColumns="False" Width="650px" PageSize="4" 
    OnDataBinding="gvExperiencias_DataBinding" 
    OnPageIndexChanging="gvExperiencias_PageIndexChanging"> 
     <PagerSettings Mode="NumericFirstLast" 
      FirstPageImageUrl="~/images/fle_pag_izq.gif" 
      LastPageImageUrl="~/images/fle_pag_der.gif" 
      NextPageImageUrl="~/images/fle_pag_der.gif" 
      PreviousPageImageUrl="~/images/fle_pag_izq.gif" 
      Position="TopAndBottom" PageButtonCount="4" FirstPageText="" 
      LastPageText="" NextPageText="" PreviousPageText="" /> 
     <Columns> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <div id="it_0" class="new_solo_exp_ini"> 
         <asp:HyperLink ID="a_0" runat="server" Visible='<%# Eval("NotEmpty_0") %>' 
          NavigateUrl='<%# "experiencia.aspx?cod_cod=" + Eval("tttb_articulo_relacion_0.ARTCOD_ARTREL") + "&pag=" + pag + "&grp=" + Eval("idiocod_cod_idi_0") + "&cod="+cod %>'> 
          <asp:Image ID="Image_0" runat="server" Height="88px" 
           ImageUrl='<%# Eval("arigls_nom_img_0","~/ArchivosUsuario/1/1/Articulos/{0}") %>' 
           Width="88px" CssClass="new_image_exp_ini" /> 
         </asp:HyperLink> 
         <div class="new_vineta_tit_exp_ini"> 
          <asp:HyperLink ID="HyperLink_0" runat="server" 
           NavigateUrl='<%# "experiencia.aspx?cod_cod=" + Eval("tttb_articulo_relacion_0.ARTCOD_ARTREL") + "&pag=" + pag + "&grp=" + Eval("idiocod_cod_idi_0") + "&cod="+cod %>' 
           Text='<%# Bind("arigls_tit_0") %>'> 
          </asp:HyperLink> 
         </div> 
       </div> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
    <PagerStyle CssClass="new_pag_bajo_exp_ini" /> 
    <RowStyle CssClass="new_fila_exp_ini" /> 
</asp:GridView> 

나는 마지막 버튼이나 ... 그것은 해당 페이지로 이동하지만를 클릭하면 내가 이전 페이지 내가 클릭 할 때 다음과 같은 오류가 발생합니다 : 012 $ IDP를 사용하여 컨트롤 ID $ ContentPlaceHolder1 $ gvExperiencias $ ctl01 $ ctl01 '이 (가) 위치 할 수 없거나 포스트 백 이후에 동일한 ID에 다른 컨트롤이 할당 되었기 때문에 오류가 발생했습니다. ID가 할당되지 않은 경우이 오류를 방지하기 위해 다시 게시 이벤트를 발생시키는 컨트롤의 ID 속성을 명시 적으로 설정하십시오.

따라서 호출기가 올바르게 작동하지 않습니다. 나는 그것이 동적으로 생성되어야하는 Image의 Id 때문이라고 생각하지만 어떻게 해야할지 모르겠습니다.

답변

0

템플릿의 모든 요소가 runat = "server"가 true로 설정되어 있기 때문에 GridView가 혼란 스럽다고 생각됩니다. 이것은 NamingContainer의 계층 구조를 엉망으로 만듭니다. 당신의 DIV 요소에 RUNAT = "서버"를 설정하십시오 :

<ItemTemplate> 
<div id="it_0" class="new_solo_exp_ini" runat="server"> 
    <asp:HyperLink ID="a_0" runat="server" NavigateUrl='<%# "experiencia.aspx?cod_cod=" + Eval("tttb_articulo_relacion_0.ARTCOD_ARTREL") + "&pag=" + pag + "&grp=" + Eval("idiocod_cod_idi_0") + "&cod="+cod %>' 
     Visible='<%# Eval("NotEmpty_0") %>'> 
     <asp:Image ID="Image_0" runat="server" Height="88px" ImageUrl='<%# Eval("arigls_nom_img_0","~/ArchivosUsuario/1/1/Articulos/{0}") %>' 
      Width="88px" CssClass="new_image_exp_ini" /> 
    </asp:HyperLink> 
    <div id="some_id" class="new_vineta_tit_exp_ini" runat="server"> 
     <asp:HyperLink ID="HyperLink_0" runat="server" NavigateUrl='<%# "experiencia.aspx?cod_cod=" + Eval("tttb_articulo_relacion_0.ARTCOD_ARTREL") + "&pag=" + pag + "&grp=" + Eval("idiocod_cod_idi_0") + "&cod="+cod %>' 
      Text='<%# Bind("arigls_tit_0") %>'> 
     </asp:HyperLink> 
    </div> 
</div> 

또한 두 번째 DIV에 ID를 추가해야하고,거야 DIV id를하는 경우, 그래서 NamingContainer에 의해 수정됩니다 자바 스크립트를 통해 참조하는 경우 ClientID 속성을 사용하여 실제 ID를 확인해야합니다.