Hirdetés
- EarFun Air Pro 4+ – érdemi plusz
- Titokzatos OnePlus telefon és óra közeleg
- Telekom mobilszolgáltatások
- Xiaomi 14 Ultra - Leica hercegnő
- Hivatalos a OnePlus 13 startdátuma
- Nothing Ear (3) - mikrofonpróba
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Android alkalmazások - szoftver kibeszélő topik
- Kezünkben a OnePlus 15 és az Oppo Find X9-ek
- iPhone topik
Ú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
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Antminer S21 Hydro 335T (BOS 360T) hashboard hibásan eladó.
- ÚJ BONTATLAN Apple Watch Series S9 41mm Pink és Mid Azonnal Átvehető DEÁK TÉRNÉL 1 Év Apple Garancia
- Apple iPad Air 5. generáció/KÉK/64GB/M1/WIFI+Cellular/99% AKKU!!!!!
- Nitro AN515-58 15.6" FHD IPS i7-12700H RTX 3060 16GB 1TB NVMe + 1TB HDD magyar vbill gar
- Katana GF66 12UGS 15.6" FHD IPS i7-12700H RTX 3070 32GB 512GB NVMe magyar vbill gar
- Lenovo T450s notebookok - 14", i5-i7, 4-12GB RAM, eu vil.bill, számla, gar
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB RAM RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- Intel Core i5-9500 / i5-9500T / i7-8700 / i7-9700 CPU, processzor - Számla, garancia
- Telefon felvásárlás!! Samsung Galaxy A12/Samsung Galaxy A22/Samsung Galaxy A32/Samsung Galaxy A52
- HIBÁTLAN iPhone 13 Pro 128GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3667 100% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


