สอบถามการส่งค่า ID ผ่าน modal pop-up
Posted: Thu Apr 05, 2018 10:37 pm
เมื่อไฟล์ต่างๆถูกบันทึกลงฐานข้อมูลแล้วเรียกชื่อไฟล์มาแสดงใน Gridview ดังภาพ ซึ่งมีปุ่มให้คลิกเข้าไปแก้ไขไฟล์ผ่าน modal pop-up ดังภาพที่ 2 โดยใช้ Hiddenfield เป็นตัวเก็บค่า ID ของแต่ละไฟล์ เมื่อคลิกปุ่มแก้ไขจะส่งค่า ID ไปในฟังก์ชัน editClick เมื่อ pop-up แสดงขึ้นมาแล้วเลือกไฟล์ที่ต้องการอัพเดท จากนั้นคลิกปุ่ม save จะเข้าฟังก์ชัน EditFileUpload แต่ปัญหาอยู่ตรงที่ค่า ID จากปุ่มแก้ไขไม่เข้าฟังก์ชัน EditFileUpload ค่ะ เลยไม่สามารถทำการ Update ไฟล์ได้ รบกวนขอคำแนะนำได้ไหมคะ
Code: Select all
protected void editClick(object sender, EventArgs e)
{
HiddenDocID.Value = (sender as LinkButton).CommandArgument;
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "open();", true);
}
protected void EditFileUpload(object sender, EventArgs e)
{
string id = HiddenDocID.Value;
string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);
string contentType = FileUpload1.PostedFile.ContentType;
try
{
using (Stream fs = FileUpload1.PostedFile.InputStream)
{
using (BinaryReader br = new BinaryReader(fs))
{
byte[] bytes = br.ReadBytes((Int32)fs.Length);
string strConString = ConfigurationManager.ConnectionStrings["DatabaseConnection"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConString))
{
string query = @"UPDATE Documents SET Doc_name = @Doc_name, Doc_type = @Doc_type, Data = @Data where [Doc_id] = @Doc_id";
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.Connection = con;
cmd.Parameters.AddWithValue("@Doc_name", filename);
cmd.Parameters.AddWithValue("@Doc_type", contentType);
cmd.Parameters.AddWithValue("@Data", bytes);
cmd.Parameters.AddWithValue("@Doc_id", id);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
}
}
catch (Exception ex)
{
string error = ex.Message;
}
}