Diskuze: Jak vložit image s alt popisem programově do gridview

C# .NET .NET (C# a Visual Basic) Jak vložit image s alt popisem programově do gridview American English version English version

Avatar
tomas
Člen
Avatar
tomas:

Ahoj, mám dotaz viz subject. Nevím si s tím rady a už to řeším dlouho, ani google neporadil. mám v databázi seznam zařízení. Pro názornost z tabulky použiji jen následující sloupečky:

ID | NAZEV | POPIS

tohle celé dostat do gridu problém není, ale já k tomu potřebuji přidat ještě dva další sloupce s obrázkem. Jeden je pro editaci a druhý pro detail. Obsluhu těch tlačítek mám udělanou přes jquery. Já potřebuji do gridview vložit obrázek, který bude mít atribut alt s hodnotou id plus akce, například 15_edit. Tak abych po kliknutí na obrázek rozeznal o který obrázek jde a jaký spustit ajax dotaz. Tady je můj grid a pod ním kod pro jeho naplnění. Jinak je to Windows Form Aplication

<asp:GridView ID="GrdDeviceList" runat="server" CellPadding="4" GridLines="Horizontal" AutoGenerateColumns="False" SkinID="test" Width="95%" HorizontalAlign="Center">
<Columns>
        <asp:ImageField DataImageUrlField="e" HeaderText="edit" />
        <asp:BoundField DataField="id" HeaderText="ID"  />
        <asp:BoundField DataField="name" HeaderText="nazev" />
        <asp:BoundField DataField="note" HeaderText="popis" />
</Columns>
</asp:GridView>
protected void MenuType_MenuItemClick(object sender, MenuEventArgs e)
        {
                Int32 idType = Convert.ToInt32(e.Item.Value);
                IEnumerable<sp_GetDevicesByType_Result> listOfDevice = db.sp_GetDevicesByType(idType);

                DataTable listOfDeviceTable = new DataTable();
                listOfDeviceTable.Columns.Add("e", typeof(string));
                listOfDeviceTable.Columns.Add("id", typeof(string));
                listOfDeviceTable.Columns.Add("name", typeof(string));
                listOfDeviceTable.Columns.Add("note", typeof(string));

                foreach (sp_GetDevicesByType_Result res in listOfDevice)
                {

                        DateTime datePuchase = Convert.ToDateTime(res.date_purchase);
                        listOfDeviceTable.Rows.Add(
                                "Images/edit.png",
                                res.id.ToString(),
                                res.name,
                                res.note);

                };
                GrdDeviceList.DataSource = listOfDeviceTable;
                GrdDeviceList.DataBind();

tohle mě sice zobrazí to co chci, ale obrázek bez popisu, takže sice obsluha události mě funguje, ale když přidám další obrázek s další možností, tak nerozeznám, na který se kliklo. Obsluhuji jquery událost $('img').clic­k(function () {...}

Editováno 16.12.2014 8:52
 
Odpovědět 16.12.2014 8:51
Avatar
Odpovídá na tomas
Michal Štěpánek:

Když si místo BoundField uděláš z toho sloupce TemplateField, můžeš si to v té buňce uspořádat jak potřebuješ a dát tam co chceš...

Nahoru Odpovědět 19.12.2014 13:50
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
tomas
Člen
Avatar
Odpovídá na Michal Štěpánek
tomas:

vyzkouším, dík, za tip.

 
Nahoru Odpovědět 23.12.2014 14:16
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.