环境:VS2012,jquery和VB代码背后
中的一个简单的imageButton<td><asp:imageButton onClick="Function generated by vs" ..>
当客户端点击此时,不会触发任何事件。 使用带有updatePanel和触发器imageButton的listview的另一个代码仍存在同样的问题。
当我使用简单的Html页面时,此代码有效但当我有母版页时不起作用吗?
<table id="tableImg" class="tableImage">
<tr>
<td>
<asp:ImageButton ID="PagerLeft" CssClass="divPagerLeft"
ImageUrl="~/Medias/Config/SliderMoveLeft.gif"
OnClick="PagerLeft_Click"
runat="server" />
</td>
<td class='tdImage'>
<asp:Image ID="img1" ClientIDMode="Static" CssClass="imgIntoGallery" ImageUrl="/" AlternateText="img1" runat="server" />
</td>
<td class='tdImage'>
<asp:Image ID="img2" ClientIDMode="Static" CssClass="imgIntoGallery" ImageUrl="/" AlternateText="img1" runat="server" />
</td>
<td class='tdImage'>
<asp:Image ID="img3" ClientIDMode="Static" CssClass="imgIntoGallery" ImageUrl="/" AlternateText="img1" runat="server" />
</td>
<td class='tdImage'>
<asp:Image ID="img4" ClientIDMode="Static" CssClass="imgIntoGallery" ImageUrl="/" AlternateText="img1" runat="server" />
</td>
<td class='tdImage'>
<asp:Image ID="img5" ClientIDMode="Static" CssClass="imgIntoGallery" ImageUrl="/" AlternateText="img1" runat="server" />
</td>
<td class='tdImage'>
<asp:Image ID="img6" ClientIDMode="Static" CssClass="imgIntoGallery" ImageUrl="/" AlternateText="img1" runat="server" />
</td>
<td>
<asp:ImageButton ID="PagerRight" ClientIDMode="Static" CssClass="divPagerRight"
ImageUrl="~/Medias/Config/SliderMoveRight.gif"
OnClick="PagerRight_Click"
runat="server" />
</td>
</tr>
</table>
CODE BEHIND :-
Protected Sub btnRight_Click(sender As Object, e As EventArgs)
ClientScript.RegisterStartupScript(Me.[GetType](), "alert", "alert('RightClick')", True)
Dim start_index As Integer = 0
If (ViewState("start_index") Is Nothing) Then
ViewState("start_index") = 0
Else
start_index = Convert.ToInt32(ViewState("start_index"))
End If
If (start_index < nbrRows - PageSize) Then
start_index += 1
ViewState("start_index") = start_index
idxFrom = start_index
idxTo = idxFrom + PageSize
getImgFromSql()
End If
End Sub
答案 0 :(得分:0)
您还没有发布事件处理程序的代码,而不是PagerLeft和PageRight。您已经发布了一个btnRight的代码,该代码在您的aspx页面上不存在,它似乎也无法处理点击事件。
要处理按钮的单击事件,您始终可以按如下方式声明该函数:
Public Sub PagerLeft_Click(sender as Object, e As EventArgs) Handles PagerClick.Click
'Do code
End Sub
执行此操作您可以从HTML中删除OnClick文本,因为这将自动触发,因为服务器会在呈现页面之前自动生成OnClick HTML。
您是否能够确认是否已定义这些点击事件方法?
答案 1 :(得分:0)
Onclick =“Event”需要是代码隐藏中sub的名称。例如,PagerRight的Onclick事件需要更改为btnRight_Click才能调用该子。
<asp:ImageButton ID="PagerRight" ClientIDMode="Static" CssClass="divPagerRight"
ImageUrl="~/Medias/Config/SliderMoveRight.gif"
**Onclick="btnRight_Click"**
runat="server" />
另一种方法是从图像按钮中删除Onclick,并在Sub行的末尾键入Handles PagerRight.Click。
Protected Sub btnRight_Click(sender As Object, e As EventArgs) Handles PagerRight.Click
End Sub