Как добавить картинку в header у GridView при сортировке?

Vatman
Дата: 23.04.2007 16:33:33
Есть GridView нужно при сортировке нужно рядом с названием колонки поставить картинку.
делаю вот так
    <asp:GridView ID="GridView" runat="server" DataSourceID="sdsData" AllowSorting="True" 
        OnSorting="GridView_Sorting" SkinID="Viewer" AutoGenerateColumns="false" >        
        <Columns>                                    
....
        </Columns>                
    </asp:GridView>

        protected void GridView_Sorting(object sender, GridViewSortEventArgs e)
        {
            GridView gv = (GridView)sender;
            foreach (DataControlField col in gv.Columns)
            {
                col.HeaderText = (col.SortExpression == e.SortExpression) ?
                    col.AccessibleHeaderText +  "<img src='sort.gif'/>"
                    : col.AccessibleHeaderText;                
            } 
        }

выводит вместо картинки текст "название колонки<img src='sort.gif'/>"

Вопрос: подскажите как сделать так что бы выводился не текст а именно картинка(т.е. что бы не было преобразования html тега в текст)
либо укажите другой путь.


Как вариант может быть кто нибудь знает как сделать так что бы одновременно показывался и текст (HeaderText ) и картинка (HeaderImageUrl).
Zorina
Дата: 23.04.2007 18:17:39
gv.Columns[0].HeaderText = "text<img src='kartinka.gif'/>";            

Я вижу и текст и картинку.
prokhorovserge
Дата: 23.04.2007 18:19:11
Я бы это делал через стили CSS.
Serge
Vatman
Дата: 24.04.2007 12:45:01
Help me!!!

Почему когда я пишу

gv.Columns[0].HeaderText = "text<img src='kartinka.gif'/>";

у меня выводиться text<img src='kartinka.gif'/>
как с этим бороться?
Zorina
Дата: 24.04.2007 13:39:14
тут я уж гадать не могу, в какой последовательности вы что выполняете :)
сделайте независимое тест-приложение, положите гридвью, присвойте хедеру картинку. показывается? 
Vatman
Дата: 25.04.2007 10:59:07
нет не показываеться.
сделал подругому
        protected void GridView_RowCreated(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Header)
            {
                GridView gv = (GridView)sender;
                Image img = new Image();
                img.ImageUrl = "~/i/common/sort_down.gif";
                for (int i = 0; i < gv.Columns.Count; i++)
                {
                    string colExpr = gv.Columns[i].SortExpression;
                    if (colExpr != "" && colExpr == gv.SortExpression)
                        e.Row.Cells[i].Controls.Add(img);
                }
            }
        }
Zorina
Дата: 25.04.2007 12:14:31
хехе я нашла какая разница между  крокодилом - я использовала не asp:BoudField - колонку а asp:TemplateField. 
В обычной BoundField действительно показывается только текст.
 
pecha
Дата: 25.04.2007 13:00:02
Вообще там есть свойство HtmlEncode у BoundField и по-умолчанию оно равно True, если HtmlEncode = false, тогда все теги будут тегами, а не текстом.

GoDevs.com - Cheap Domain Names, Free/Cheap ASP.NET AJAX Web Hosting, 24x7 support and much more.
Zorina
Дата: 25.04.2007 13:54:16
О! Здорово! большое вам Мерси.
StiC
Дата: 16.08.2007 09:45:37
Доброе утро!

Может кто ни будь подскажет как в Header GridView’а можно запихнуть картинку так, чтобы она растянулась по всему заголовку колонки.
Если вставить картинку с помощью свойства HeaderImageUrl, получается контур вокруг image.

Заранее спасибо.