我需要获取ListView项的click事件来刷新另一个ListView而不刷新整个页面。当用户点击ListView no.1的任何项目时,基本上使用javascript刷新ListView No.2。这是我试过的:
ListView 1:
<asp:ListView ID="LeftsideMessageList" runat="server" ItemPlaceholderID="itemPlaceHolder1" DataKeyNames="id" OnSelectedIndexChanged="LeftsideMessageList_SelectedIndexChanged" >
ListView 2(每次点击/选择LV1的任何项目时都会刷新)
<asp:UpdatePanel ID="videosUpdatePanel" runat="server" OnLoad="videosUpdatePanel_Load" >
<ContentTemplate>
<asp:ListView ID="videosListView" runat="server" ItemPlaceholderID="itemPlaceHolder1">
//List view items and stuff
</ContentTemplate>
</asp:UpdatePanel>
我的javascript:
<script
type="text/javascript"> function GetVideos() { __doPostBack("<%=videosUpdatePanel.UniqueID %>", ""); }
</script>
我只需要调用GetVideos()javascript方法来触发videosUpdatePanel的C#OnLoad方法:
protected void videosUpdatePanel_Load(object sender, EventArgs e)
{
string email = Session["Username"].ToString();
List<Activity> videos = BC.getMediaOfUser(email, "Video");
videosListView.DataSource = videos;
videosListView.DataBind();
}
这是我想到的程序:
点击/选择LV1中的任何项目 - &gt;调用GetVideos()Javascript - &gt;调用更新面板的OnLoad以刷新LV2
我坚持的地方是,我如何调用GetVideos()函数,因为ASP ListViews没有OnClick方法?调用ListView No.1的OnItemClick的方法是什么?
答案 0 :(得分:0)
您可以使用简单方法执行此操作,无需其他JavaScript。使用UpdatePanel触发器。
此链接显示触发器的详细示例。
答案 1 :(得分:0)
检查 LeftsideMessageList 列表视图呈现HTML。并将click事件绑定添加到行项目。此事件可以调用GetVideos功能。