การแสดงรูปภาพ การใช้งาน template field การใช้งาน gridview

Download Report

Transcript การแสดงรูปภาพ การใช้งาน template field การใช้งาน gridview

1



สร้ าง datasource ติดต่อกับตาราง UserPic เพื่อเลือก username และ รูปภาพ
ขึ ้นมาแสดงผล โดยให้ คา่ พารามิเตอร์ username มาจาก Session
"SELECT * FROM [UserPic] WHERE ([username] = @username)”
สร้ าง FormView แล้ วจับคูก่ บั datasource ข้ างต้ น
สร้ าง <asp:Image> ภายใน FormView โดย Edit DataBindings ดังรูป
2

สร้ างตารางโดยไปที่ Database explorer > table > add new table
◦ กาหนดให้ สร้ างตาราง Student เก็บข้ อมูลนักศึกษา
3


สร้ าง DataSource ติดต่อกับตาราง Student โดยใช้ คาสัง่ select * from student
กาหนดให้ DataSource สามารถเพิ่มคาสัง่ insert/update/delete ได้
4


สร้ าง FormView เพื่อใช้ แสดงผลข้ อมูล Student
สามารถเข้ าไปแก้ ไข template ได้ ที่ Edit Template
5



สร้ าง DataSource2 เพื่อติดต่อกับตาราง Student โดยสามารถ
insert/update/delete ผ่าน DataSource ได้
สร้ าง Gridview แล้ ว binding กับ DataSource2
ลบฟิ ลด์ midterm, final, pay ที่เป็ นแบบ databound ทิ ้งแล้ วสร้ างใหม่เป็ นแบบ
template field โดยสร้ างเป็ น textbox และ checkbox
6
โค้ ดสาหรับประมวลผลคาสัง่ sql ตามพารามิเตอร์ cmd ที่สง่ เข้ ามา
protected void exeSQL(string cmd) {
try {
SqlCommand updatecmd = new SqlCommand(cmd, dbcon.conn);
updatecmd.ExecuteNonQuery();
lbStatus.Text = "เพิ่มข้ อมูลสาเร็จ";
}
catch (SqlException se)
{
lbStatus.Text = "เพิ่มข้ อมูลไม่สาเร็จ " + se.ToString();
}
}
7
//โค้ ดของปุ่ มตกลง โดยจะดึงค่าของสถานะการชาระเงินมาคานวน หากชาระเงินแล้ วจะนาคะแนนกลางภาคและปลายภาค
มาคานวนหาเกรด หากยังไม่ได้ ชาระเงินจะยังไม่ออกเกรดให้
//หมายเหตุ เขียนฟั งก์ชนั คานวนเกรดเพิ่ม
protected void Button1_Click(object sender, EventArgs e)
{
bool isPay;
double mid,final;
char grade;
string ins_cmd;
dbcon.connectToDB();
foreach (GridViewRow gvr in GridView1.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 ให้ แสดงผล
}
8
โค้ ดการเปลี่ยนสีบรรทัดที่มีเกรดเป็ น F โดยโค้ ดส่วนนี ้ให้ ใส่ไปใน event ของ GridView
โดยเปิ ด event ที่มีชื่อว่า RowDataBound (ตรงเครื่ องหมายสายฟ้า)
protected void GridView1_RowDataBound(object sender,
GridViewRowEventArgs e) {
char x;
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;
}
}
}
9