Обновление панели повторителя LinkButton OnClick Bind ListView - PullRequest
0 голосов
/ 14 июня 2011

Я получаю полные постбэки - у меня есть кнопка ссылки в повторителе, и при нажатии я хочу связать просмотр списка.

Оба находятся в одной панели обновления.

Это пользовательский контроль, а не страница aspx.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using umbraco.Linq.Core;
using System.Web.UI.HtmlControls;

using TechReady;

public partial class usercontrols_VideoGallery : System.Web.UI.UserControl
{
    public TechReadyDataContextDataContext techDataContext;

    protected void Page_Load(object sender, EventArgs e)
    {      
            Bind_Tracks();
    }

    protected void Bind_Tracks()
    {
        techDataContext = new TechReadyDataContextDataContext();
        var tracks = from t in techDataContext.Tracks
                     orderby t.Title
                     select t;
        TracksListRepeater.DataSource = tracks;
        TracksListRepeater.DataBind();
        techDataContext.Dispose();
    }

    protected void Bind_VideoGallery(string tracktitle)
    {
        techDataContext = new TechReadyDataContextDataContext();
        var sessions = (from s in techDataContext.Sessions
                        where s.SessionTrack == tracktitle                      
                        orderby s.SessionTrack
                        select s);
        VidGalListView.DataSource = sessions;
        VidGalListView.DataBind();
        techDataContext.Dispose();
    }

    protected void TabLink_Click(Object sender, EventArgs e)
    {
           LinkButton lb = (LinkButton)sender;
            RepeaterItem ri = (RepeaterItem)lb.NamingContainer;
            HtmlGenericControl litostyle2 = (HtmlGenericControl)ri.FindControl("tablinkli");
            litostyle2.Attributes.Add("Class", "ui-tabs-selected");
            Bind_VideoGallery(lb.CommandArgument);
    }

    protected void TracksListRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            LinkButton lb = (LinkButton)e.Item.FindControl("tablink");
            ScriptManager1.RegisterAsyncPostBackControl(lb);            
        }

    }

    protected void TracksListRepeater_ItemCommand(object sender, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "TabClicked")
        {


        }
    }
}

Ответы [ 2 ]

0 голосов
/ 12 апреля 2012

Недавно я столкнулся с такой же проблемой: кнопка ссылки внутри повторителя внутри панели обновления.Я нашел два решения для выполнения асинхронной записи назад при нажатии кнопки ссылки.
1. Добавьте следующий атрибут в директиву страницы, содержащий ретранслятор и кнопку ссылки:

<%@ page ClientIDMode="AutoID" %>
2ScriptManager для события привязки данных для ретранслятора:

LinkButton linkButton = e.Item.FindControl("button") as LinkButton; ScriptManager.RegisterAsyncPostBackControl(linkButton)

0 голосов
/ 14 июня 2011

У меня работало 2 менеджера сценариев - один на главной странице ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...