我有以下<asp:gridview>
和一个TemplateField。
在每个单元格中都有一个带有链接的图像和带有链接的文本。
它有 AllowPaging = True
这是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>
当我点击最后一个按钮或...时它会转到相应的页面但是当我点击上一页时我会收到以下错误:
发生错误,因为无法找到具有Id $ ContentPlaceHolder1 $ gvExperiencias $ ctl01 $ ctl01'的控件,或者在回发后将不同的控件分配给相同的ID。如果未分配ID,请显式设置引发回发事件的控件的ID属性,以避免此错误。
因此寻呼机无法正常工作。我认为这是因为必须动态生成Image的Id,但我不知道该怎么做。
答案 0 :(得分:0)
我怀疑GridView很混乱,因为并非模板中的所有元素都将runat =“server”设置为true。这弄乱了NamingContainer heirarchy。尝试在div元素上设置runat =“server”:
<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修改,所以如果你通过JavaScript引用它们,你将不得不使用它们的ClientID属性来确定它们的实际值。 id是。