|
|
|
สอบถามวิธีการบันทึกชื่อผู้ที่มาเปลี่ยนแปลงข้อมูลในGridview จะต้องทำอย่างไร |
|
|
|
|
|
|
|
สร้าง table log ขึ้นมา
field
-----------
id (running number)
userid (id ของuser ที่ทำ)
itemid (id ของ item ที่แก้)
action (เก็บว่าทำอะไร add, edit, delete, enable, disable)
modifydate (เวลาที่แก้)
แล้วเมื่อมีการแก้ไขอะไรก็ใช้ add new ที่ log
|
|
|
|
|
Date :
2012-07-27 15:45:59 |
By :
อิอิ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณคุณ อิอิ มากเลยนะครับ เกิดแนวทางแตกฉานเลยล่ะนั่งยิ้มเลย ผมนั่งตีความอยู่นานว่า Table log คืออะไร มันก็แค่การสร้าง Table ที่ชื่อว่า Log นั่นเอง นึกไปซะไกลว่า ToolBox ใน .net ถึงว่าหาข้อมูลไม่เจอ = =''
แต่ผมยังมีข้อสงสัยอยู่ครับคือ ในช่องที่จะบันทึกว่าใครเป็นผู้กระทำน่ะครับ ถ้าผมต้องการให้มันบันทึกลงField userid โดยเอาIDที่LOGINเข้ามาไปใส่ได้ไหมครับ เพราะถ้าเป็น textbox ให้ใส่เองมัน(อาจ)เกิดปัญหาการปลอมแปลงได้น่ะครับ
|
|
|
|
|
Date :
2012-07-27 16:57:43 |
By :
mitr2009 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องเอา ID ที่เขา LOG in ไปใส่อยุ่แร้วหละครับ
|
|
|
|
|
Date :
2012-07-28 11:55:24 |
By :
tavada_b |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
น่าจะใช้ Session ได้นะครับ เพราะลองเอา Session จากการ Login มาแสดงใน TextBox แล้วปรับให้มัน ReadOnly ก็สามารถทำได้ แต่ปัญหาคือ TextBox มันอยุ่ใน GridView ไม่สามารถเรียกขึ้นมาได้ตรงๆแบบนี้ txtText.Text = Session["UserAuthentication"].tostring();
แก้ไขยังไงดีครับ
|
|
|
|
|
Date :
2012-07-30 10:09:45 |
By :
mitr2009 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มี 2 วิธี
เอาแบบทื่อๆ ก็ใช้ nugget ที่ aspx ใส่ให้ gridview เลย
กลับอีกวิธี bind data โดยใช้ rowdatabound event ซึ่งต้องทำใน code behide
|
|
|
|
|
Date :
2012-07-30 10:26:02 |
By :
อิอิ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วู้วววว นั่งระงมเกือบ2อาทิตย์ ในที่สุดก็ทำได้แล้วครับ ขอขอบคุณKeyWord code behide มากมายเลยครับ มันช่วยได้เยอะมากมาย
หลักการคือ นำ TextBoxที่อยู่ในGridViewที่ถูกซ่อนอยู่ ณ Mode Edit รับค่ามาจาก Session จากการLoginมาบันทึกลงฐานข้อมูล
นี่คือตัวอย่างโค้ดที่อยู่ใน Code Behide ทั้งหมดเลยนะครับ เผื่อเป็นแนวทางแก่คนอื่นครับ ขอบคุณมากๆเลยครับ งานแรกของผมสำเร็จแล้ว
Code (C#)
<%@ Page Language="C#" Debug="true" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" Title="Untitled Page" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OracleClient" %>
<script runat="server">
OracleConnection objConn;
OracleCommand objCmd;
String strSQL;
void Page_Load(object sender, EventArgs e)
{
TextBox3.Text = Session["UserAuthentication"].ToString(); // ทดสอบการรับค่าของTextBoxจาก Session ที่ Login เข้ามา
String strConnString;
strConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
objConn = new OracleConnection(strConnString);
objConn.Open();
}
void Page_UnLoad()
{
objConn.Close();
objConn = null;
}
void modUpdateCommand(Object sender, GridViewUpdateEventArgs e)
{
TextBox txtEDIT = (TextBox)myGridView.Rows[e.RowIndex].FindControl("txtEDIT");
txtEDIT.Text = Session["UserAuthentication"].ToString();
strSQL = "UPDATE POST SET EDIT = '" + txtEDIT.Text + "' " +
" WHERE POST_ID = '" + myGridView.DataKeys[e.RowIndex].Value + "'";
objCmd = new OracleCommand(strSQL, objConn);
objCmd.ExecuteNonQuery();
}
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<strong>
<table style="background-color: #ffccff; border-top-width: thin; border-left-width: thin; border-left-color: black; border-bottom-width: thin; border-bottom-color: black; border-top-color: black; height: 21px; border-right-width: thin; border-right-color: black; width: 1105px;">
<tr>
<td style="width: 268px; height: 22px; text-align: center; border-right-color: black; border-left-color: black; border-bottom-color: black; border-top-style: double; border-top-color: black; border-right-style: double; border-left-style: double; border-bottom-style: double;"
valign="middle">
<asp:LinkButton ID="LinkButton2" runat="server" PostBackUrl="~/SearchID.aspx" Width="248px">ค้นหาจากเลขรหัสพัสดุ /ไปรษณีย์</asp:LinkButton>
</td>
<td style="border-left-color: black; border-bottom-color: black; width: 180px; border-top-color: black;
height: 22px; text-align: center; border-right-color: black; border-top-style: double; border-right-style: double; border-left-style: double; border-bottom-style: double;">
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/SearchName.aspx" Width="171px">ค้นหาจาก ชื่อ-สกุล</asp:LinkButton></td>
<td style="width: 136px; height: 22px; text-align: left; border-left-color: black; border-bottom-color: black; border-top-style: double; border-top-color: black; border-right-style: double; border-left-style: double; border-right-color: black; border-bottom-style: double;" align="center" valign="middle">
<asp:LinkButton ID="LinkButton3" runat="server" PostBackUrl="~/SearchDate.aspx" Width="157px">ค้นหาจากช่วงวันที่</asp:LinkButton></td>
<td style="width: 216px; height: 22px; text-align: center; border-left-color: black; border-bottom-color: black; border-top-style: double; border-top-color: black; border-right-style: double; border-left-style: double; border-right-color: black; border-bottom-style: double;">
<asp:LinkButton ID="LinkButton4" runat="server" PostBackUrl="~/Result.aspx" Width="96px">ดูทั้งหมด</asp:LinkButton></td>
</tr>
</table>
<br />
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:Label ID="Label7" runat="server" Style="left: 431px; position: relative; top: -4px"
Text="ค้นหาจากเลขรหัสพัสดุ/ไปรษณีย์" Font-Size="16pt"></asp:Label> <br />
<br />
<table style="height: 407px">
<tr>
<td colspan="2" style="width: 1179px; text-align: center; height: 27px;">
<asp:Label ID="Label1" runat="server" Text="เลขรหัส พัสดุ / ไปรษณีย์ : " Width="185px"></asp:Label>
<asp:TextBox ID="txtKey" runat="server" Width="262px"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="ค้นหา" Font-Bold="True" /></td>
</tr>
<tr>
<td colspan="2" style="width: 1179px; text-align: left; height: 382px;">
<asp:GridView ID="myGridView" runat="server" AutoGenerateColumns="False"
OnRowUpdating="modUpdateCommand"
BackColor="White" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px"
CellPadding="4" DataKeyNames="POST_ID" DataSourceID="SqlDataSource1" HorizontalAlign="Center" Width="1100px" GridLines="Horizontal" AllowPaging="True">
<RowStyle BackColor="White" ForeColor="#003399" />
<Columns>
<asp:TemplateField HeaderText="รหัสพัสดุ">
<EditItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("POST_ID") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("POST_ID") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="ชื่อ-สกุล">
<EditItemTemplate>
<asp:Label ID="Label6" runat="server" Text="ชื่อ"></asp:Label><asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("POST_NAME") %>' Width="63px"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="ไม่ได้กำหนดชื่อ" ControlToValidate="TextBox1"></asp:RequiredFieldValidator><br />
<asp:Label ID="Label8" runat="server" Text="สกุล"></asp:Label><asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("POST_LASTNAME") %>' Width="63px"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="ไม่ได้กำหนดสกุล" ControlToValidate="TextBox2"></asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("POST_NAME") %>'></asp:Label>
<asp:Label ID="Label9" runat="server" Text='<%# Bind("POST_LASTNAME") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="ประเภทผู้รับ">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="SqlDataSource4"
DataTextField="HTYPE_NAME" DataValueField="HTYPE_ID" SelectedValue='<%# Bind("HTYPE_ID") %>'>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
DeleteCommand="DELETE FROM POST_MEN WHERE (HTYPE_ID = :original_HTYPE_ID) AND (HTYPE_NAME = :original_HTYPE_NAME) OR (HTYPE_ID = :original_HTYPE_ID) AND (HTYPE_NAME IS NULL) AND (:original_HTYPE_NAME IS NULL)"
InsertCommand='INSERT INTO "POST_STATUS" ("PSTATUS_ID", "P_NAME") VALUES (:PSTATUS_ID, :P_NAME)'
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand='SELECT * FROM "POST_MEN" ORDER BY "HTYPE_NAME"'
UpdateCommand='UPDATE "POST_MEN" SET "HTYPE_NAME" = :HTYPE_NAME WHERE "HTYPE_ID" = :original_HTYPE_ID AND (("HTYPE_NAME" = :original_HTYPE_NAME) OR ("HTYPE_NAME" IS NULL AND :original_HTYPE_NAME IS NULL))'>
<DeleteParameters>
<asp:Parameter Name="original_HTYPE_ID" />
<asp:Parameter Name="original_HTYPE_NAME" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="HTYPE_NAME" />
<asp:Parameter Name="original_HTYPE_ID" />
<asp:Parameter Name="original_HTYPE_NAME" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="PSTATUS_ID" />
<asp:Parameter Name="P_NAME" />
</InsertParameters>
</asp:SqlDataSource>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("HTYPE_ID") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="ประเภทพัสดุ">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource3"
DataTextField="PTYPE_NAME" DataValueField="PTYPE_ID" SelectedValue='<%# Bind("PTYPE_ID") %>'>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
DeleteCommand="DELETE FROM POST_TYPE WHERE (PTYPE_ID = :original_PTYPE_ID) AND (PTYPE_NAME = :original_PTYPE_NAME) OR (PTYPE_ID = :original_PTYPE_ID) AND (PTYPE_NAME IS NULL) AND (:original_PTYPE_NAME IS NULL)"
InsertCommand="INSERT INTO POST_TYPE(PTYPE_ID, PTYPE_NAME) VALUES (:PTYPE_ID, :PTYPE_NAME)"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT PTYPE_ID, PTYPE_NAME FROM POST_TYPE ORDER BY PTYPE_NAME"
UpdateCommand="UPDATE POST_TYPE SET PTYPE_NAME = :PTYPE_NAME WHERE (PTYPE_ID = :original_PTYPE_ID) AND (PTYPE_NAME = :original_PTYPE_NAME) OR (PTYPE_ID = :original_PTYPE_ID) AND (PTYPE_NAME IS NULL) AND (:original_PTYPE_NAME IS NULL)">
<DeleteParameters>
<asp:Parameter Name="original_PTYPE_ID" />
<asp:Parameter Name="original_PTYPE_NAME" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="PTYPE_NAME" />
<asp:Parameter Name="original_PTYPE_ID" />
<asp:Parameter Name="original_PTYPE_NAME" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="PTYPE_ID" />
<asp:Parameter Name="PTYPE_NAME" />
</InsertParameters>
</asp:SqlDataSource>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("PTYPE_ID") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="สถานะ">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource2"
DataTextField="P_NAME" DataValueField="PSTATUS_ID" SelectedValue='<%# Bind("PSTATUS_ID") %>'>
</asp:DropDownList><br />
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
DeleteCommand="DELETE FROM POST_STATUS WHERE (PSTATUS_ID = :original_PSTATUS_ID) AND (P_NAME = :original_P_NAME) OR (PSTATUS_ID = :original_PSTATUS_ID) AND (P_NAME IS NULL) AND (:original_P_NAME IS NULL)"
InsertCommand="INSERT INTO POST_STATUS(PSTATUS_ID, P_NAME) VALUES (:PSTATUS_ID, :P_NAME)"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand='SELECT * FROM "POST_STATUS" ORDER BY "P_NAME"'
UpdateCommand='UPDATE "POST_STATUS" SET "P_NAME" = :P_NAME WHERE "PSTATUS_ID" = :original_PSTATUS_ID AND (("P_NAME" = :original_P_NAME) OR ("P_NAME" IS NULL AND :original_P_NAME IS NULL))'>
<DeleteParameters>
<asp:Parameter Name="original_PSTATUS_ID" />
<asp:Parameter Name="original_P_NAME" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="P_NAME" />
<asp:Parameter Name="original_PSTATUS_ID" />
<asp:Parameter Name="original_P_NAME" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="PSTATUS_ID" />
<asp:Parameter Name="P_NAME" />
</InsertParameters>
</asp:SqlDataSource>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("PSTATUS_ID") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField DataField="DATE1" DataFormatString="{0:d}" HeaderText="วันที่รับเข้าระบบ"
ReadOnly="True" SortExpression="DATE1" >
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:TemplateField ConvertEmptyStringToNull="False" InsertVisible="False" ShowHeader="False"
SortExpression="DATE1">
<EditItemTemplate>
<asp:Calendar ID="Calendar1" runat="server" VisibleDate='<%# Bind("DATE1") %>'></asp:Calendar>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="แก้ไขล่าสุดโดย" SortExpression="TEST">
<ItemTemplate>
<asp:Label ID="Label10" runat="server" Text='<%# Bind("EDIT") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField DeleteText="ลบ" EditText="แก้ไข" HeaderText="การแก้ไข" ShowDeleteButton="True"
ShowEditButton="True" ShowHeader="True" ButtonType="Button" >
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</asp:CommandField>
<asp:TemplateField HeaderText="การแก้ไขล่าสุด(HIDE)" Visible="False">
<EditItemTemplate>
<asp:TextBox ID="txtEDIT" runat="server"></asp:TextBox> <br />
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblEDIT" runat="server" Text='<%# Bind("EDIT") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
<PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
<HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
DeleteCommand="DELETE FROM POST WHERE (POST_ID = :POST_ID)"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT POST_ID, POST_NAME,POST_LASTNAME, HTYPE_ID, PTYPE_ID, PSTATUS_ID, DATE1,EDIT FROM POST WHERE (POST_ID LIKE :POST_ID)"
UpdateCommand="UPDATE POST SET POST_NAME = :POST_NAME,POST_LASTNAME = :POST_LASTNAME, PTYPE_ID = :PTYPE_ID, HTYPE_ID = :HTYPE_ID, PSTATUS_ID = :PSTATUS_ID, DATE1 = :DATE1 WHERE (POST_ID = :POST_ID) OR (EDIT = :EDIT)">
<SelectParameters>
<asp:ControlParameter ControlID="txtKey" Name="POST_ID" PropertyName="Text" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="POST_ID" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="POST_NAME" />
<asp:Parameter Name="POST_LASTNAME" />
<asp:Parameter Name="PTYPE_ID" />
<asp:Parameter Name="HTYPE_ID" />
<asp:Parameter Name="PSTATUS_ID" />
<asp:Parameter Name="DATE1" />
<asp:Parameter Name="POST_ID" />
<asp:Parameter Name="EDIT" />
</UpdateParameters>
</asp:SqlDataSource>
</td>
</tr>
</table>
</strong>
</asp:Content>
|
ประวัติการแก้ไข 2012-08-08 10:10:22 2012-08-08 10:12:52
|
|
|
|
Date :
2012-08-08 10:09:29 |
By :
mitr2009 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากๆๆ คะ
|
|
|
|
|
Date :
2012-09-25 16:12:07 |
By :
aom |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|