- Meggyi001: Nyilvános wc-k.....még mindig hiánypótló...
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Szólánc.
- MasterDeeJay: Alacsony fogyasztású házi szerver a korábbi projektekből összeépítve
- Argos: Adjátok vissza a netet! - szeretnék elaludni!
- Geri Bátyó: Megint tahó voltam – SZEMÉLYISÉGFEJLŐDÉS
- gban: Ingyen kellene, de tegnapra
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Pajac: Átlátszó fém
- Magga: PLEX: multimédia az egész lakásban
Új hozzászólás Aktív témák
-
Boolash
aktív tag
Sziasztok,
Elakadtam egy problémával, remélem tudtok tippet adni.
VS2010-ben fejlesztek VisualWebPartot. Adatbázisba töltöttem fel fájlokat (binárisan tárolom) illetve a hozzá tartozó adatokat, és most ezeket szeretném kiolvasni, letölteni.
Indítottam egy Linq to Sql lekérdezést, mellyel megtaláltam a számomra érdekes elemeket. Ezeket egy Listába tárolom. Az egész lekérdezést a Page_Load -ban végzem, hogy az oldal betöltésekor már meglegyen ez a listám. Viszont nem szeretném, hogy ezt a lekérdezést többször is el kelljen végeznem, ezért Postback esetben nem végzem el ( if (!Page.IsPostBack))A Listát egy SPGridView-ban jelenítem meg. Az spgridview-ban lényegében a dokumentum neve és az ID-ja jelenik meg (egyedileg azonosítja).
A dokumentum nevét LinkButton-ban jelenítem meg. OnCommand() eseményre egy függvényt hív, melyben végzem el a letöltést, CommandArgument-ben elküldöm az adott ID-t.
<asp:TemplateField HeaderText="Név">
<ItemTemplate>
<asp:LinkButton
ID="LnkDownload"
runat="server"
Text='<%# Eval("Name")%>'
OnCommand="download"
CommandArgument='<%# Eval("ID")%>'>
</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>A download metódus a cs-ben:
protected void download(Object sender, CommandEventArgs e)
{using (DataClasses1DataContext dc = new DataClasses1DataContext("Data Source=..."))
{
int a;
bool b = int.TryParse(e.CommandArgument.ToString(), out a);
Document d = doksik.Single(p => p.ID == a);Label1.Text = d.Name;
Response.Clear();
Byte[] bytes = (Byte[])d.BinaryData.ToArray();
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = d.MimeType.ToString();
Response.AddHeader("content-disposition", "attachment;filename="
+ d.Name.ToString());
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();}
}
Az SPGridview szépen megjelenik, benne a linkbutton is. Rákattintok, és le is tudom tölteni. Viszont a következő kattintás már nem lehetséges (se linkbuttonra se sima buttonra...). Olyan mintha a postback nem futna le...
Nem vagyok tökéletesen tisztában a működéssel, de szerintem van valahol egy ajax-os scriptmanager, mert ha próbálok egyet hozzáadni, akkor nem engedni, azt írja, hogy már van. Próbálkoztam updatepanelbe rakni, majd triggert állítani rá, de nem működött (ugyanaz).
Próbálkoztam response.redirect-el, de ez nem lenne jó, mert ilyenkor a linq lekérdezés is ismét lefutna...
Próbáltam postback hívással javascriptből, de nem történt változás..
Mi lehet a gond?
Köszönöm
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Keychron Q0 Plus, kiterjesztett numpad kiosztású, halkított, PBT kupakos makropad billentyűzet
- Samsung Galaxy s24 Dual sim 8/128GB Független
- Keychron Q8 halkított, magyar feliratozású PBT kupakos billentyűzet + második csere belső
- Vegyes szimulátoros kiegészítők
- HP Spectre x360 Érintős Hajtogatós Laptop Tab 16" -60% i7-13700H 16/1TB Iris Xe 3K+
- Gamer PC - Számítógép! Csere-Beszámítás! I7 6700 / 32GB DDR4 / RTX 2060 / 256SSD+500GB HDD
- MacBook Pro 13, 14, 15, 16, MacBook Air M1, M2 M3 M4 bill magyarosítás lézerrel / sapkacserével
- 129 - Lenovo Legion Pro 7 (16ARX8H) - AMD Ryzen 9 7945HX, RTX 4080
- Azonnali készpénzes nVidia RTX 5000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Update 08.13. - Bomba árak 2025-ben is! Üzleti - Consumer laptopok DELL FUJITSU HP LENOVO
Állásajánlatok
Cég: FOTC
Város: Budapest