дождитесь привязки данных, прежде чем менять изображение кнопки - PullRequest
0 голосов
/ 21 марта 2012

Я хочу сделать то же самое, думая, что мы сортируем MySQL по Colone, у меня есть заголовок таблицы Colone и кнопка image затем, когда я нажимаю на кнопку image, я связываю данные с myrepeater и я хочу изменить imageurl кнопки imageделаю так

protected void UserRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    switch (e.CommandName)
    {
        case "country":
            break;
        default:
            string criteres = e.CommandName;
            ImageButton image = (ImageButton)UserRepeater.Controls[0].Controls[0].FindControl(criteres);
            if (image.ImageUrl == "~\\Data\\logos\\s_desc.png")
            {
                LoadSortedData(criteres, "DESC", 1);
                image.ImageUrl = "~\\Data\\logos\\s_asc.png";
            }
            else
            {
                LoadSortedData(criteres, "ASC", 1);
                image.ImageUrl = "~\\Data\\logos\\s_desc.png";
            }
            break;
    }
}

Неожиданно, мой повторитель получает данные, но URL-адрес изображения не изменяется, если я оставил image.ImageUrl = "~ \ Data \ logos \ s_asc.png";в одиночку без LoadSortedData, которые связывают повторитель, изменение URL изображения при клике, есть идеи?

1 Ответ

0 голосов
/ 22 марта 2012
protected void UserRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        int bookid;
        switch (e.CommandName)
        {
            case "country":
                break;
            default:
                string criteres = e.CommandName;
                ImageButton image = (ImageButton)UserRepeater.Controls[0].Controls[0].FindControl(criteres);
                if (image.ImageUrl == "~\\Data\\logos\\s_desc.png")
                {
                    LoadSortedData(criteres, "DESC", 1);
                    image = (ImageButton)UserRepeater.Controls[0].Controls[0].FindControl(criteres);
                    image.ImageUrl = "~\\Data\\logos\\s_asc.png";
                }
                else
                {
                    LoadSortedData(criteres, "ASC", 1);
                    image = (ImageButton)UserRepeater.Controls[0].Controls[0].FindControl(criteres);
                    image.ImageUrl = "~\\Data\\logos\\s_desc.png";
                }
                break;
        }
    }

thx Кодер у меня работает этот код.

...