Edit ข้อมูลใน Gridview แล้วข้อมูลที่แสดงในการ Edit ไม่ตรงกับที่เลือกไว้
กำหนด datakey อะไรไว้ครับ
Date :
2012-12-19 10:12:05
By :
ห้ามตอบเกินวันละ 2 กระทู้
ID ค่ะ
Date :
2012-12-19 10:33:33
By :
pha_story
ใช้ภาษาอะไรครับ c# หรือ asp.net
Date :
2012-12-19 15:47:25
By :
tiravood
ถ้ากำหนด datakey แล้ว
งั้นเอาโค้ดมาดู อยากดูตรง row event หน่อย
Date :
2012-12-19 16:53:38
By :
ห้ามตอบเกินวันละ 2 กระทู้
ขอบคุณมาก ๆ ค่ะ เกี่ยวกับแนวทางตอนนี้ได้แล้วค่ะ ขอบคุณจริง ๆ นะค่ะ ที่พูดเกี่ยวกับ "อยากดูตรง row event หน่อย"
หาตั้งนาน
ประวัติการแก้ไข 2012-12-20 09:47:31 2012-12-20 09:53:00 2012-12-20 09:54:01
Date :
2012-12-20 09:46:51
By :
pha_story
Code (VB.NET)
'*********************** ตอนแสดงข้อมูลปกติ ******************
Sub BindDataAMPHUR()
strSQL = "SELECT * FROM Add_Amphur ORDER BY AMPHUR_NAMETH"
Dim dtReader As SqlDataReader
objCmd = New SqlCommand(strSQL, objConn)
dtReader = objCmd.ExecuteReader()
'*** BindData to MyAMPHUR ***'
MyAMPHUR.DataSource = dtReader
MyAMPHUR.DataBind()
dtReader.Close()
dtReader = Nothing
End Sub
'*********************** ตอนแสดงข้อมูลที่ใช้ DropdownList ค้นหา ******************
Sub BindDataAMPHUR2()
strSQL = "SELECT * FROM Add_Amphur WHERE (PROVINCE_ID like '" & strProvinces & "') "
Dim dtReader As SqlDataReader
objCmd = New SqlCommand(strSQL, objConn)
dtReader = objCmd.ExecuteReader()
'*** BindData to MyAMPHUR ***'
MyAMPHUR.DataSource = dtReader
MyAMPHUR.DataBind()
dtReader.Close()
dtReader = Nothing
End Sub
Date :
2012-12-20 09:59:07
By :
pha_story
อยากดูต้องกำหนด datakeyname
กับตรง handle row edit event
ไม่ใช่ตรง bind data
Date :
2012-12-20 10:40:18
By :
ห้ามตอบเกินวันละ 2 กระทู้
ภาทำแบบนี้น่ะค่ะ เขียนตามความเข้าใจตัวเอง T_T
Protected Sub MyAMPHUR_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles MyAMPHUR.RowEditing
MyAMPHUR.EditIndex = e.NewEditIndex
MyAMPHUR.ShowFooter = False
If txtSearchProvinces.Text = "78" Then
BindDataAMPHUR()
Else
BindDataAMPHUR2()
End If
End Sub
Date :
2012-12-20 11:06:36
By :
pha_story
WebGridView.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebGridView.aspx.cs" Inherits="WebGridView" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
<asp:Button ID="ButtonSearch" runat="server" Text="Search"
onclick="ButtonSearch_Click" />
<br />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ButtonSearch" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
WebGridView.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class WebGridView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DropDownList1.DataSource = GetCatalog();
DropDownList1.DataValueField = "ID";
DropDownList1.DataTextField = "CatalogName";
DropDownList1.DataBind();
BindData(Convert.ToInt32(DropDownList1.SelectedItem.Value));
}
}
protected void ButtonSearch_Click(object sender, EventArgs e)
{
BindData(Convert.ToInt32(DropDownList1.SelectedItem.Value));
}
protected void BindData(int dataID)
{
DataTable dtData = GetData();
DataTable data = (from d in dtData.AsEnumerable()
where d.Field<int>("CatalogID") == dataID
select d).CopyToDataTable();
GridView1.DataSource = data;
GridView1.DataKeyNames = new string[] { "ID" };
GridView1.DataBind();
}
protected void GridView1_DataBinding(object sender, EventArgs e)
{
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView gv = (GridView)sender;
gv.EditIndex = e.NewEditIndex;
BindData(Convert.ToInt32(DropDownList1.SelectedItem.Value));
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView gv = (GridView)sender;
gv.EditIndex = -1;
BindData(Convert.ToInt32(DropDownList1.SelectedItem.Value));
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
}
protected DataTable GetCatalog()
{
DataTable dtCatalog = new DataTable();
dtCatalog.Columns.Add(new DataColumn("ID", typeof(int)));
dtCatalog.Columns.Add(new DataColumn("CatalogName", typeof(string)));
string[] catalog = new string[] { "ชื่อวัน", "ชื่อเดือน" };
for (int i = 0; i < 2; i++)
{
DataRow drNew = dtCatalog.NewRow();
drNew["ID"] = i + 1;
drNew["CatalogName"] = catalog[i];
dtCatalog.Rows.Add(drNew);
}
return dtCatalog;
}
protected DataTable GetData()
{
DataTable dtData = new DataTable();
dtData.Columns.Add(new DataColumn("ID", typeof(int)));
dtData.Columns.Add(new DataColumn("CatalogID", typeof(int)));
dtData.Columns.Add(new DataColumn("Name", typeof(string)));
string[] dayName = new string[] { "วันอาทิตย์", "วันจันทร์", "วันอังคาร", "วันพุธ", "วันพฤหัสบดี", "วันศุกร์", "วันเสาร์" };
for (int i = 0; i < 7; i++)
{
DataRow drNew = dtData.NewRow();
drNew["ID"] = i + 1;
drNew["CatalogID"] = 1;
drNew["Name"] = dayName[i];
dtData.Rows.Add(drNew);
}
for (int i = 0; i < 12; i++)
{
DataRow drNew = dtData.NewRow();
drNew["ID"] = i + 8;
drNew["CatalogID"] = 2;
drNew["Name"] = (new DateTime(2012, i + 1, 1)).ToString("MMMM", new System.Globalization.CultureInfo("th-TH"));
dtData.Rows.Add(drNew);
}
return dtData;
}
}
Date :
2012-12-20 13:34:29
By :
ห้ามตอบเกินวันละ 2 กระทู้
Load balance : Server 04