DataGird ไม่ อัพเดต อ่ะครับช่วยหน่อย ใช้ Select จาก Grid แล้วโชว์ที่ DetailsView ครับ
รายละเอียดพร้อม Capture หน้าจอหน่อยน่ะครับ เผื่อจะช่วยได้
Date :
2010-09-21 06:39:42
By :
webmaster
รูป 1 จะเห้นว่า เลือกจาก DataGird แล้วมาแสดงที่ DetailsView ครับพร้อม แก้ไข และลบ
รูป 2 ลบ Userid 10 ไป จากรูปแรก เลือก Delete ที่ DetailsView ข้อมูลหายไปครับ แต่ที่ DataGrid ยังมี Row นั้นอยู๋ แต่ถ้ากดเลือกข้อมูลก็ไม่อยู่แล้ว
Date :
2010-09-21 13:14:06
By :
ang89gunner
เอา code ตรงหน้า update มาให้ดูน่ะครับ ลองเช็คที่ Page Life Cycle ครับ
Date :
2010-09-21 13:28:21
By :
webmaster
ตอบความคิดเห็นที่ : 3 เขียนโดย : webmaster เมื่อวันที่ 2010-09-21 13:28:21
รายละเอียดของการตอบ ::
ผมใช้ ASP.net # VB ใช้พวก Control นะครับ Code มันเลยสร้างไว้ที่ .aspx หมดเลย
Code (ASP)
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Admin_Default" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table style="width:100%;">
<tr>
<td colspan="3">
<table style="width:100%;">
<tr>
<td colspan="2" valign=top align=center>
</td>
</tr>
<tr>
<td style="width: 448px" valign=top align=center>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="UserID" DataSourceID="Sqladmin" BackColor="White"
BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3"
ForeColor="Black" GridLines="Vertical" AllowPaging="True"
AllowSorting="True">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="UserID" HeaderText="UserID" InsertVisible="False"
ReadOnly="True" SortExpression="UserID" />
<asp:BoundField DataField="UserName" HeaderText="UserName"
SortExpression="UserName" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Typeid" HeaderText="Typeid"
SortExpression="Typeid" />
</Columns>
<FooterStyle BackColor="#CCCCCC" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="#CCCCCC" />
</asp:GridView>
<asp:SqlDataSource ID="SqlAllShow" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>"
DeleteCommand="DELETE FROM [Member] WHERE [UserID] = @original_UserID AND (([UserName] = @original_UserName) OR ([UserName] IS NULL AND @original_UserName IS NULL)) AND (([UserPassword] = @original_UserPassword) OR ([UserPassword] IS NULL AND @original_UserPassword IS NULL)) AND (([Name] = @original_Name) OR ([Name] IS NULL AND @original_Name IS NULL)) AND (([Lastname] = @original_Lastname) OR ([Lastname] IS NULL AND @original_Lastname IS NULL)) AND (([Email] = @original_Email) OR ([Email] IS NULL AND @original_Email IS NULL)) AND (([Address] = @original_Address) OR ([Address] IS NULL AND @original_Address IS NULL)) AND (([Typeid] = @original_Typeid) OR ([Typeid] IS NULL AND @original_Typeid IS NULL))"
InsertCommand="INSERT INTO [Member] ([UserName], [UserPassword], [Name], [Lastname], [Email], [Address], [Typeid]) VALUES (@UserName, @UserPassword, @Name, @Lastname, @Email, @Address, @Typeid)"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [Member]
WHERE (USERID=@USERID)"
UpdateCommand="UPDATE [Member] SET [UserName] = @UserName, [UserPassword] = @UserPassword, [Name] = @Name, [Lastname] = @Lastname, [Email] = @Email, [Address] = @Address, [Typeid] = @Typeid WHERE [UserID] = @original_UserID AND (([UserName] = @original_UserName) OR ([UserName] IS NULL AND @original_UserName IS NULL)) AND (([UserPassword] = @original_UserPassword) OR ([UserPassword] IS NULL AND @original_UserPassword IS NULL)) AND (([Name] = @original_Name) OR ([Name] IS NULL AND @original_Name IS NULL)) AND (([Lastname] = @original_Lastname) OR ([Lastname] IS NULL AND @original_Lastname IS NULL)) AND (([Email] = @original_Email) OR ([Email] IS NULL AND @original_Email IS NULL)) AND (([Address] = @original_Address) OR ([Address] IS NULL AND @original_Address IS NULL)) AND (([Typeid] = @original_Typeid) OR ([Typeid] IS NULL AND @original_Typeid IS NULL))">
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="USERID"
PropertyName="SelectedValue" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="original_UserID" Type="Int32" />
<asp:Parameter Name="original_UserName" Type="String" />
<asp:Parameter Name="original_UserPassword" Type="String" />
<asp:Parameter Name="original_Name" Type="String" />
<asp:Parameter Name="original_Lastname" Type="String" />
<asp:Parameter Name="original_Email" Type="String" />
<asp:Parameter Name="original_Address" Type="String" />
<asp:Parameter Name="original_Typeid" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="UserName" Type="String" />
<asp:Parameter Name="UserPassword" Type="String" />
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="Lastname" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="Address" Type="String" />
<asp:Parameter Name="Typeid" Type="Int32" />
<asp:Parameter Name="original_UserID" Type="Int32" />
<asp:Parameter Name="original_UserName" Type="String" />
<asp:Parameter Name="original_UserPassword" Type="String" />
<asp:Parameter Name="original_Name" Type="String" />
<asp:Parameter Name="original_Lastname" Type="String" />
<asp:Parameter Name="original_Email" Type="String" />
<asp:Parameter Name="original_Address" Type="String" />
<asp:Parameter Name="original_Typeid" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="UserName" Type="String" />
<asp:Parameter Name="UserPassword" Type="String" />
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="Lastname" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="Address" Type="String" />
<asp:Parameter Name="Typeid" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="Sqladmin" runat="server"
ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT [UserID], [UserName], [Name], [Typeid] FROM [Member]">
</asp:SqlDataSource>
</td>
<td valign=top align=center>
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False"
DataKeyNames="UserID" DataSourceID="SqlAllShow" Height="50px"
Width="125px" CellPadding="4" ForeColor="#333333" GridLines="None">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<CommandRowStyle BackColor="#E2DED6" Font-Bold="True" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<Fields>
<asp:TemplateField HeaderText="UserID" InsertVisible="False"
SortExpression="UserID">
<EditItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("UserID") %>' Width="180px" Height="25px"></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox10" runat="server" Text='<%# Eval("UserID") %>' Width="180px" Height="25px" ReadOnly=true></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="UserName" SortExpression="UserName">
<EditItemTemplate>
<asp:Label ID="Label9" runat="server" Text='<%# Eval("UserName") %>' Width="180px" Height="25px"></asp:Label>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("UserName") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox11" runat="server" Text='<%# Bind("UserName") %>' Width="180px" Height="25px" ReadOnly=true></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="UserPassword" SortExpression="UserPassword">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("UserPassword") %>' Width="180px" Height="25px"></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("UserPassword") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox12" runat="server" Text='<%# Bind("UserPassword") %>' Width="180px" Height="25px" ReadOnly=true></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name" SortExpression="Name">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Name") %>' Width="180px" Height="25px"></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox13" runat="server" Text='<%# Bind("Name") %>' Width="180px" Height="25px" ReadOnly=true></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Lastname" SortExpression="Lastname">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Lastname") %>' Width="180px" Height="25px"></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Lastname") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox14" runat="server" Text='<%# Bind("Lastname") %>' Width="180px" Height="25px" ReadOnly=true></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Email" SortExpression="Email">
<EditItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("Email") %>' Width="180px" Height="25px"></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("Email") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox15" runat="server" Text='<%# Bind("Email") %>' Width="180px" Height="25px" ReadOnly=true></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Address" SortExpression="Address">
<EditItemTemplate>
<asp:TextBox ID="TextBox8" runat="server" Text='<%# Bind("Address") %>'
TextMode="MultiLine" Width="180px" Height="100px"></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("Address") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox9" runat="server" Text='<%# Bind("Address") %>'
TextMode="MultiLine" Width="180px" Height="100px" ReadOnly=true></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Typeid" SortExpression="Typeid">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlType"
DataTextField="Typename" DataValueField="Typeid"
SelectedValue='<%# Bind("Typeid") %>' Width="180px" Height="25px">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlType" runat="server"
ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>"
SelectCommand="SELECT * FROM [Type]"></asp:SqlDataSource>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("Typeid") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlType"
DataTextField="Typename" DataValueField="Typeid"
SelectedValue='<%# Bind("Typeid") %>' Width="180px" Height="25px" ReadOnly=true>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlType" runat="server"
ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>"
SelectCommand="SELECT * FROM [Type]"></asp:SqlDataSource>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowInsertButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Fields>
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:DetailsView>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="width: 107px">
<table style="width: 455%;">
<tr>
<td colspan="3" align=center style="height: 21px">
<asp:Label ID="Label10" runat="server"
Text="เลือกข้อมูลที่ต้องการแก้ไข หรือ ลบ" Font-Bold="True"></asp:Label>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td style="width: 80px">
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td style="width: 80px">
</td>
</tr>
</table>
</td>
<td colspan="2">
</td>
</tr>
<tr>
<td style="width: 107px">
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td style="height: 21px; width: 107px">
</td>
<td style="height: 21px">
</td>
<td style="height: 21px">
</td>
</tr>
<tr>
<td style="width: 107px">
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td style="width: 107px">
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td style="height: 21px; width: 107px">
</td>
<td style="height: 21px">
</td>
<td style="height: 21px">
</td>
</tr>
<tr>
<td style="width: 107px">
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td style="width: 107px">
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</asp:Content>
Date :
2010-09-21 13:59:37
By :
ang89gunner
แหะๆๆ งงเลยครับ ไม่เคยทำแบบนี้
แต่ที่รู้ๆ หลังจากกดอัพเดทไปแล้ว ต้องหาวิธีทำไงก็ได้ครับให้มัน Select มาแสดงใน grid ใหม่
หรือมีการ refresh page , postback ไรทำนองนี้แหละครับ
Date :
2010-09-21 16:18:07
By :
nickyshox99
ช่วยหน่อยนะครับ
Date :
2010-09-21 21:43:47
By :
ang89gunner
ผมลอง
ใส่ ที่. vb อ่ะครับ
Code (VB.NET)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If (Page.IsPostBack) Then
GridView1.DataBind()
End If
End Sub
เวลา ลบจากตาราง ฝั่งขวาแล้ว
ฝั่ง datagird แถวข้อมูลที่ลบ ยังไม่หายครับ แต่ พอกด Select ใหม่ ก็หายไป ไม่ต้องปิดเปิดใหม่เหมอืนตอนยังไม่ใส่ code
ปัญหาคือ พอกดลบ แล้ว datagird แถวที่ลบ ไม่ อัพเดตตามไปด้วยครับ
Date :
2010-09-21 23:58:19
By :
ang89gunner
ช่วยหน่อยนะครับ
Date :
2010-09-22 19:39:16
By :
ang89gunner
T_Txx
Date :
2010-09-24 21:05:54
By :
xx
หลังจากลบ ที่ปุ่มลบก็ DataBind(); มันใหม่สิ
Date :
2010-09-24 23:28:08
By :
nooknoname
ถ้าใส่ ไว้ที่
Protected Sub DetailsView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewPageEventArgs) Handles DetailsView1.PageIndexChanging
If (Page.IsPostBack) Then
GridView1.DataBind()
End If
End Sub
ที่ DataGrid ยังแสดงไม่ลบ ครับ ตามรูปแต่ ตามจริงข้อมูลได้ลบไปแล้ว
Date :
2010-09-25 21:48:35
By :
ก
Load balance : Server 04