ASP.NET ListView:从OnItemClick事件调用Javascript函数?

时间:2015-04-30 07:09:38

标签: javascript c# asp.net listview

我需要获取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的方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用简单方法执行此操作,无需其他JavaScript。使用UpdatePanel触发器。

http://www.asp.net/web-forms/overview/older-versions-getting-started/aspnet-ajax/understanding-asp-net-ajax-updatepanel-triggers

此链接显示触发器的详细示例。

答案 1 :(得分:0)

检查 LeftsideMessageList 列表视图呈现HTML。并将click事件绑定添加到行项目。此事件可以调用GetVideos功能。