 |
|
ถามเกี่ยวกับ gridview เพื่อต้องการใช้แสดงข้อมูลจากฐานข้อมูลนะค่ะ |
|
 |
|
|
 |
 |
|
จากคำถามของ จขกท. จริงๆแล้ว ถ้าลองไปศึกษาเรื่อง Gridview ดีๆ ก็น่าจะได้หมดนะคะ
แต่ว่า จะให้ไอเดียนิดหน่อยละกันเน๊อะ
คำถาม1 : การจะทำให้เพิ่มข้อมูลเข้ามาในตาราง โดยที่เราไม่ต้องกด Refresh หน้าใหม่
- หลังจากการกด Save ก็ให้ทำการ Insert ข้อมูลลงฐานข้อมูล เสร็จแล้วก็ทำการ Bind Gridview อีกครั้งค่ะ
เราจะไม่ต้องกด Refresh ใหม่ แต่ตาราง Gridview จะ Refresh ตัวเองใหม่ค่ะ
Code (C#)
//แสดง Grid View
MainGrid.DataSource = dt; //dt คือ DataTable ที่เรานำมาทำเป็นข้อมูลในตาราง
MainGrid.DataBind();
จะเรียกข้อมูลมาเป็น DataSource แบบนี้ หรือจะเขียนไว้ที่ .aspx ก็ได้นะคะ แต่เราถนัดแบบนี้มากกว่า แหะๆ
คำถาม2 : ตอนที่เราสร้าง Gridview เราสามารถเปลี่ยนแปลงได้เลยค่ะ ในหน้า .aspx อ่ะค่ะ เช่น
Code (ASP)
<asp:GridView ID="MainGrid" runat="server" AutoGenerateColumns="False" OnRowDataBound="MainGrid_RowDataBound"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="ชื่อ - นามสกุล">
<ItemTemplate>
<asp:Label ID="lbl_name" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
คำถาม3 : อันนี้ไม่ค่อยแน่ใจเรื่องการนำขึ้นไปโชว์ ไม่เคยเขียนอ่ะค่ะ แต่พอให้ไอเดียได้ค่ะ
คือเราสามารถใช้ Edit Mode ช่วยได้ค่ะ ถ้ากด Edit ให้ส่งค่าใน Field ไหน ไปยัง Textbox เช่น
Code (C#)
protected void MainGrid_RowEditing(object sender, GridViewEditEventArgs e)
{
//ในนี้ก็ ส่งค่าไปที่ TextBox ค่ะ
}
ส่วนในการคิวรี่ ต้องเป็น Update นะคะ เนื่องจากข้อมูลมีอยู่แล้วแน่นอน
ถามว่า ใช้ปุ่ม Save ร่วมกันได้มั้ย ขอตอบว่า ทำได้ค่ะ
ไอเดีย : อาจจะใส่เงื่อนไขไว้ในปุ่ม Save ว่า ถ้าเป็นการ Edit มา ให้ทำการ Update ถ้าไม่ใช่ก็ Insert ประมาณนี้
คำถาม4: ลองศึกษาจากหน้านี้ละกันนะคะ
https://www.thaicreate.com/asp.net/c-sharp-asp.net-gridview-control-rowcommand-edit-update-cancel-add.html
ทั้งหมดที่กล่าวมา ลองศึกษาเพิ่มเติมจากหน้านี้ก็ได้ค่ะ
https://www.thaicreate.com/asp.net/asp.net-gridview.html
น่าจะพอได้ไอเดียบ้างโน๊ะ 
|
ประวัติการแก้ไข 2011-08-03 10:37:30
 |
 |
 |
 |
Date :
2011-08-03 10:36:21 |
By :
roongine |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สร้างและกำหนดค่าต่างๆของ Datagridview ในหน้า Code ก่อน
Code (VB.NET)
Private Sub show_grid()
With DataGridView1
.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns.Add("no", "ลำดับ")
.Columns.Add("name", "ชื่อ - นามสกุล")
' .Columns.Add("edit", "แก้ไข")
' .Columns.Add("delete", "ลบ")
.Columns("no").DataPropertyName = "no"
.Columns("name").DataPropertyName = "name"
.AutoGenerateColumns = False
dt= New DataTable ' อย่าลืมประกาศตัวแปร public dt as datatable ข้างบน
dt.Columns.Add("no", GetType(System.String))
dt.Columns.Add("name", GetType(System.String))
End With
End sub
code ของปุ่ม save
Code (VB.NET)
Private Sub btn_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_save.Click
Dim rw As DataRow = dt.NewRow()
Dim row_no as integer = DataGridView1.RowCount + 1
rw("no") = row_no
rw("name") = textbox1.text
dt.Rows.Add(rw)
DataGridView1.DataSource = dt
End Sub
ลองประยุกต์ใช้นะครับ ผิดพลาดประการใดขออภัยด้วย
|
 |
 |
 |
 |
Date :
2011-08-03 10:41:02 |
By :
tarlek |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอโทษด้วยครับ ลืมดูว่าเป็น asp.net
|
 |
 |
 |
 |
Date :
2011-08-03 10:43:40 |
By :
tarlek |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สวัสดค่ะ รบกวนหน่อยค่ะ
อยากทราบว่าจะเพิ่มชื่อในหัวตารางdataGrid เปลี่ยนยังไงค่ะ
|
 |
 |
 |
 |
Date :
2012-01-28 12:24:26 |
By :
บิวร์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กระทู้นี้เก่านี้แล้ว
ถ้าจะถาม ก็ตั้งกระทู้ใหม่ดีกว่านะครับ
|
 |
 |
 |
 |
Date :
2012-01-28 12:50:28 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|