PDA

View Full Version : اجرا نشدن eval بعد از فشردن image button



boysilent
یک شنبه 02 بهمن 1390, 19:26 عصر
سلام؟دوستان من برای دانلود از یه ایمیج باتن استفاده کردم همچنین یه کار دیگه هم انجام میده که به فیلد دانلود ها یکی اضاقه میشه تو پایگاه؟؟؟
اضافه میشه ولی فایل دانلود نمیشه ضمنا صفحه هم یکبار رفرش میشه؟


<a href="files/<%# Eval("filenam") %>">
<asp:ImageButton ID="ImageButton1" runat="server" CommandArgument='<%# Eval("id") %>' ImageUrl="images/download.png" />
</a>

hamid_shrk
دوشنبه 03 بهمن 1390, 08:27 صبح
احتمالا آدرس فایلی که گذاشتید اشتباهه ؛یکبار رو لینک برید ببینید اون پایین چه آدرسی رو نشون میده.

boysilent
سه شنبه 04 بهمن 1390, 10:17 صبح
نه اشتباه نیست؟؟؟؟این ادرسومیده؟ولی اجرا نمیکنه//با a href معمولی جواب میده

hamid_shrk
سه شنبه 04 بهمن 1390, 10:39 صبح
نوع فایل زیپ بزار ببین دانلود نمیکنه بازم!!
نشد بجای image button از تگ img استفاده کن

boysilent
سه شنبه 04 بهمن 1390, 12:37 عصر
خوب من ایدی رو از طریق کامند میگیرم با img که نمیشه؟؟؟

میشه یه مثال کوچک بزنید

hamid_shrk
سه شنبه 04 بهمن 1390, 12:49 عصر
پس باید تگ a رو حذف کنی و موقع کلیک شدن باید از reponse.redirect واسه دانلود استفاده کنی.

xalerebvar
سه شنبه 04 بهمن 1390, 13:20 عصر
<a href="files/<%# Eval("filenam") %>">

به جاش کد زیر رو قرار بده ببین درست می شه

<a href="~/files/<%# Eval("filenam") %>">


یا:

<a href="../files/<%# Eval("filenam") %>">

boysilent
سه شنبه 04 بهمن 1390, 13:25 عصر
نه بابا ادرسش درسته عزیز من

hamid_shrk
سه شنبه 04 بهمن 1390, 13:38 عصر
واسه چی بهش اینو دادی ؟
CommandArgument='<%# Eval("id") %>'
اگه تو code behind داری ازش استفاده میکنی همونجا با دستور

response.redirect("آدرس فایل جهت آپلود")

بزار

xalerebvar
سه شنبه 04 بهمن 1390, 13:38 عصر
بجای تگ a از کنترل hyperlink خود asp.net استفاده کن ببین بازم همچین مشکلی رو داری ، من همیشه تو پروژه ها م از اون استفاده می کنم
مثال:

<asp:HyperLink ID="HyperLink6" runat="server"
NavigateUrl='<%# Eval("FileName","~/Users/Plugins/{0}") %>'>داونلود پلاگین</asp:HyperLink>

fakhravari
سه شنبه 04 بهمن 1390, 13:55 عصر
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# String.Format("~/Show/Display_PostID.aspx?TopicID={0}&Subject={1}" ,Eval("TopicID"), Eval("Subject")) %>'
Text='<% #Eval("Subject")%>' Target="_blank">
</asp:HyperLink>

boysilent
سه شنبه 04 بهمن 1390, 13:58 عصر
واسه اینکه مقدار ایدی رو بگیرم که وقتی دانلود شد یکی به دانلودا اضاقه شه؟؟؟
اخه من نمیخوام صفحه رفرش بشه؟اونجوری که پدر کاربر در میاد

اینارو میئونم اخه من باید یه کیمند ارگومانت داشته باشم که ای دی رو بفرسته برای اجرای یه کوری

fakhravari
سه شنبه 04 بهمن 1390, 14:14 عصر
Target="_blank" است روفرش کجا :متفکر:
شما باید id بفرستین به یه صفحه دیگه بعد در پیج لود دریافت و دانلود کنید.
public void DownloadFile(string filePath)
{
if (File.Exists(Server.MapPath(filePath)))
{
string strFileName = Path.GetFileName(filePath).Replace(" ", "%20");
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileName);
Response.Clear();
Response.WriteFile(Server.MapPath(filePath));
Response.End();
}
}


string url,file;

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
file = Request.QueryString["Atach"];
url = @"../Img/File_Topik/" + file;
DownloadFile(url);
}
}

xalerebvar
سه شنبه 04 بهمن 1390, 14:18 عصر
اینارو میئونم اخه من باید یه کیمند ارگومانت داشته باشم که ای دی رو بفرسته برای اجرای یه کوری
ببینید شما میتونید کاربر رو به یک صفحه مقصد هدایت کنی که تو اون صفحه با استفاده از querystring ، مقدار قرار گرفته در ID رکورد رو با مقدار querystring مقایسه کن و تو خاصیت Page_Load صفحه مقصد اول کوئری Update رو بنویس و تو خط بعدی هم لینک داونلود رو قرار بده که موقع لود شدن توسط کاربر فایل رو داونلود کنه و یه پیغام هم حاکی از داونلود فایل به کاربر نشون بده
کد جهت داونلود فایل در خاصیت Page_Load صفحه

Response.Redirect("~/files/"+file);

boysilent
سه شنبه 04 بهمن 1390, 14:58 عصر
اینهمه کار برای یه دانلود///اونم کاربرای الان که نازنازین
نمیحوام کاربر بره صفحه بعد

boysilent
سه شنبه 04 بهمن 1390, 16:59 عصر
واسه چی بهش اینو دادی ؟
CommandArgument='<%# Eval("id") %>'
اگه تو code behind داری ازش استفاده میکنی همونجا با دستور

response.redirect("آدرس فایل جهت آپلود")

بزار


اینجوری که خطا میده دادا


response.redirect(Files/+"<%# Eval("filenam")%>");

meisam3322
سه شنبه 04 بهمن 1390, 20:52 عصر
داداشه من کدهای دانلود اینه :



Dim FR As String = Right(_RecieveDownload, 3)
Response.Buffer = True
Response.Clear()
Response.AddHeader("content-disposition", "attachement; filename=" & _RecieveDownload)
Response.ContentType = "application/" & FR.ToString
Response.WriteFile("App_Download/News/M5/" & _RecieveDownload)


ببین توی کد بالا _RecieveDownload نام و پسوند فایله و از نوع string هست. که با دستور Right میام پسوند رو از نام فایل جدا میکنم ، ولی به شرطی که پسوند فایل 3 حرفی باشه.
متغیر FR هم پسوند فایل رو نگه میداره.
حالا توی خط آخر آدرس فایل رو به همراه نام و پسوند فایل که داخل متغیر _RecieveDownload هست رو داخل دستور Response.WriteFile میزارم.

این فقط کدهای دانلود کردنه فایله . حالا خودت میدونی و روش خودت که چطور فایل رو پیدا کنی.

موفق باشین

boysilent
چهارشنبه 05 بهمن 1390, 10:38 صبح
اقا من از این زوش استفاده کردم ببینید یه کوری استرینگ فرستام بعدش تو صفحه بعد دستور اپدیت انجام میشه ولی دانلود نه؟

protected void Page_Load(object sender, EventArgs e)
{
Request.QueryString["id"].ToString();

Request.QueryString["filenam"].ToString();
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
SqlConnection myconnection = new SqlConnection("Data Source=.;Initial Catalog=wordha;Integrated Security=True");
SqlCommand mycommand = new SqlCommand();
SqlCommand newselect = new SqlCommand();
mycommand.Connection = myconnection;
mycommand.CommandText = "update wupload set dl=dl+1 where id=id";


myconnection.Open();
mycommand.ExecuteNonQuery();
myconnection.Close();




<a href="files/<%# Eval("filenam") %>"><asp:ImageButton ID="ImageButton1" runat="server" Height="27px"
ImageUrl="~/images/download.png" onclick="ImageButton1_Click" Width="102px" /></a>



تا قبل فایل نام میخونه اسم فایل رو نمیگیره؟؟؟

fakhravari
دوشنبه 10 بهمن 1390, 01:59 صبح
http://barnamenevis.org/showthread.php?325463-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4-%DB%8C%DA%A9-%D8%B3%D8%B7%D8%B1-%D8%AF%D8%B1-%DA%AF%D8%B1%DB%8C%D8%AF%D9%88%DB%8C%D9%88&p=1430630&viewfull=1#post1430630