90 likes | 287 Views
การ ใช้งาน GridView FormView การแสดงรูปภาพ. การแสดงรูปภาพผ่าน FormView. สร้าง datasource ติดต่อกับตาราง UserPic เพื่อเลือก username และ รูปภาพขึ้นมาแสดงผล โดยให้ค่าพารามิเตอร์ username มาจาก Session " SELECT * FROM [ UserPic ] WHERE ([username] = @username )”
E N D
การใช้งานGridViewFormViewการแสดงรูปภาพการใช้งานGridViewFormViewการแสดงรูปภาพ
การแสดงรูปภาพผ่าน FormView • สร้างdatasource ติดต่อกับตารางUserPicเพื่อเลือก username และรูปภาพขึ้นมาแสดงผล โดยให้ค่าพารามิเตอร์ username มาจาก Session "SELECT * FROM [UserPic] WHERE ([username] = @username)” • สร้างFormViewแล้วจับคู่กับ datasourceข้างต้น • สร้าง <asp:Image> ภายในFormViewโดย Edit DataBindingsดังรูป
สร้างตารางเพิ่มเติม • สร้างตารางโดยไปที่ Database explorer> table > add new table • กำหนดให้สร้างตารางStudentเก็บข้อมูลนักศึกษา
สร้างหน้า Student.aspx • สร้างDataSourceติดต่อกับตาราง Student โดยใช้คำสั่ง select * from student • กำหนดให้DataSourceสามารถเพิ่มคำสั่ง insert/update/delete ได้
หน้า Student.aspx • สร้างFormView เพื่อใช้แสดงผลข้อมูล Student • สามารถเข้าไปแก้ไข template ได้ที่ Edit Template
การใช้งานGridviewการสร้างฟิลด์แบบ template field และการเข้าถึงข้อมูลภายใน • สร้าง DataSource2 เพื่อติดต่อกับตาราง Student โดยสามารถ insert/update/delete ผ่านDataSourceได้ • สร้างGridviewแล้ว binding กับ DataSource2 • ลบฟิลด์ midterm, final, pay ที่เป็นแบบdatabound ทิ้งแล้วสร้างใหม่เป็นแบบ template field โดยสร้างเป็น textbox และ checkbox
โค้ดสำหรับประมวลผลคำสั่ง sql ตามพารามิเตอร์cmd ที่ส่งเข้ามา protectedvoidexeSQL(stringcmd) { try{ SqlCommandupdatecmd= new SqlCommand(cmd, dbcon.conn); updatecmd.ExecuteNonQuery(); lbStatus.Text="เพิ่มข้อมูลสำเร็จ"; } catch (SqlExceptionse) { lbStatus.Text="เพิ่มข้อมูลไม่สำเร็จ "+se.ToString(); } }
//โค้ดของปุ่มตกลงโดยจะดึงค่าของสถานะการชำระเงินมาคำนวน หากชำระเงินแล้วจะนำคะแนนกลางภาคและปลายภาคมาคำนวนหาเกรด หากยังไม่ได้ชำระเงินจะยังไม่ออกเกรดให้ //หมายเหตุ เขียนฟังก์ชันคำนวนเกรดเพิ่ม protectedvoidButton1_Click(objectsender, EventArgse) { boolisPay; doublemid,final; chargrade; stringins_cmd; dbcon.connectToDB(); foreach (GridViewRowgvrinGridView1.Rows) {//วนลูปภายในกริดวิวทุกแถว isPay= ((CheckBox)(gvr.FindControl("cbPay"))).Checked;//ดึงค่าจาก checkbox ชื่อcbPay ที่เราสร้างขึ้นมาเก็บในตัวแปร if (isPay==true) {//หากมีการชำระเงินแล้ว คือผู้ใช้มีการเลือก checkbox จริง mid=Convert.ToDouble(((TextBox)(gvr.FindControl("tbMid"))).Text);//ดึงค่าจากtbMid เก็บใส่ตัวแปร final=Convert.ToDouble(((TextBox)(gvr.FindControl("tbFinal"))).Text);//ดึงค่าจากtbFinalเก็บใส่ตัวแปร grade=‘F’;//เดี๋ยวต่อมาเขียนฟังก์ชันคำนวนเกรดใส่แทนบรรทัดนี้ ins_cmd=“เขียนคำสั่ง update ให้ถูกต้องครบทุกฟิลด์………"; ins_cmd+=" where studentID='"+gvr.Cells[0].Text+"'"; //เงื่อนไขการอัพเดทดูจากstudentID คนนั้น exeSQL(ins_cmd);//บรรทัดนี้เรียกใช้ฟังก์ชันประมวลคำสั่งsqlที่เราเขียนไว้หน้าที่แล้ว } } dbcon.closeDB(); GridView1.DataBind();//คำสั่งอัพเดทgridviewให้แสดงผล }
โค้ดการเปลี่ยนสีบรรทัดที่มีเกรดเป็น F โดยโค้ดส่วนนี้ให้ใส่ไปใน event ของGridView โดยเปิด event ที่มีชื่อว่า RowDataBound (ตรงเครื่องหมายสายฟ้า) protectedvoidGridView1_RowDataBound(objectsender, GridViewRowEventArgse) { charx; if (e.Row.RowType==DataControlRowType.DataRow) { x=Convert.ToChar( DataBinder.Eval(e.Row.DataItem, "grade")); if (x=='F') { e.Row.BackColor=System.Drawing.Color.Red; } } }