我有一个GridView,你可以点击行,并调用SelectedIndexChanged方法(该方法根据所选行更新页面的另一部分)。我以前做过类似的事情,并且它有效,但是由于某种原因,我无法让SelectedIndexChanged部分被调用。
该页面包含在具有form runat =“server”标记和asp:ScriptManager标记的主页中。
我使用e.Row.Attributes.Add(“onclick”,ClientScript.GetPostBackClientHyperlink(Me.gridMessages,“Select $”&e.Row.RowIndex))来允许通过单击行来触发SelectedIndexChanged。
为了检查代码是否除此之外还起作用,我添加了一个CommandField,其中包含一个SelectButton,成功触发,但我希望找到一种不必使用它的解决方案。
以下是代码-任何帮助将不胜感激。谢谢
GridView:
该页面包含在具有form runat =“server”标记和asp:ScriptManager标记的主页中。
我使用e.Row.Attributes.Add(“onclick”,ClientScript.GetPostBackClientHyperlink(Me.gridMessages,“Select $”&e.Row.RowIndex))来允许通过单击行来触发SelectedIndexChanged。
为了检查代码是否除此之外还起作用,我添加了一个CommandField,其中包含一个SelectButton,成功触发,但我希望找到一种不必使用它的解决方案。
以下是代码-任何帮助将不胜感激。谢谢
GridView:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:HiddenField runat="server" ID="hdnScrollPosition" />
<asp:GridView ID="gridMessages" runat="server" CssClass="gridView" AutoGenerateColumns="False"
AllowPaging="true" GridLines="None" PageSize="10" ShowHeader="True"
EmptyDataText="--No Messages Received--" Width="100%">
<Columns>
<asp:TemplateField HeaderText="Messages Received" HeaderStyle-HorizontalAlign="Left" HeaderStyle-CssClass="headerClass">
<ItemTemplate>
....
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
代码后台:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Me.gridMessages.DataSource = ...
Me.gridMessages.DataBind()
End If
End Sub
Protected Sub gridMessages_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gridMessages.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#D2E6F8'")
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#ffffff'")
e.Row.Attributes.Add("onclick", "saveScrollPosition(); " & ClientScript.GetPostBackClientHyperlink(Me.gridMessages, "Select$" & e.Row.RowIndex))
End If
End Sub
SelectedIndexChanged
(which never fires):
Protected Sub gridMessages_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gridMessages.SelectedIndexChanged
Response.Redirect("test.aspx")
End Sub
saveScrollPosition();
的调用,它是否能正常工作?我刚刚在我的一个项目中尝试了一下,在 Firefox 8.0 中它可以正常工作。也许这也是一个浏览器问题? - jwheron