Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,028

HOME > .NET Framework > Forum > สอบถามเรื่องนำค่าที่ได้จาก TextBox ใสใน GridView โดยที่ไม่ต้องเก็บลง Database ก่อน แต่เก็บไว้ใน ViewState



 

สอบถามเรื่องนำค่าที่ได้จาก TextBox ใสใน GridView โดยที่ไม่ต้องเก็บลง Database ก่อน แต่เก็บไว้ใน ViewState

 



Topic : 064847



โพสกระทู้ ( 113 )
บทความ ( 0 )



สถานะออฟไลน์




ปัญหามีอยู่ว่าต้องการนำข้อความที่กรอกลงไปใน TextBox ไปแสดงใน GridView โดยที่ไม่ต้องเก็บลง Database (asp.Net + C#)
ตัวที่ผมทำอยู่นี้มันจะเป็นค่าตัวเดียวกันหมดเลยใครพอให้คำแนะนำได้บ้างโค้ดที่ผมลองทำมั่วๆดูจะเป็นแบบนี้ครับ

Code (C#)
    protected void Button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < Convert.ToInt32(HD_num.Value); i++)
        {
            DataRow drow = dt.NewRow();
            drow[0] = TextBox1.Text;
            drow[1] = TextBox2.Text;
            dt.Rows.Add(drow);
        }
        GridView1.DataSource = dt;
        GridView1.DataBind();

        int a = 1;
        a = a + Convert.ToInt32(HD_num.Value);
        HD_num.Value = a.ToString();
    }


--- ผลลัพที่ได้คือ -----
รูปที่ 1

รูปที่ 2



Tag : .NET, Ms SQL Server 2008, Web (ASP.NET), WebService, VB.NET, C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-08-16 23:52:35 By : loogway View : 5991 Reply : 10
 

 

No. 1



โพสกระทู้ ( 113 )
บทความ ( 0 )



สถานะออฟไลน์


ได้แล้วครับ อิอิ

Code (C#)
private DataTable dTable;
private DataRow dRow; 

protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack == false)
        {
            ViewState["dTable"] = new DataTable();
        }  
    }

protected void Button1_Click(object sender, EventArgs e)
{
string[] strCol = { "txt1", "txt2"};
        dTable = (DataTable)ViewState["dTable"];
        foreach (string str in strCol)
        {
            if (!dTable.Columns.Contains(str))
            {
                dTable.Columns.Add(str);
            }
        }
        dRow = dTable.NewRow();
        foreach (string str in strCol)
        {
            switch (str)
            {
                case "txt1":
                    dRow[str] = TextBox1.Text;
                    break;
                case "txt2":
                    dRow[str] = TextBox2.Text;
                    break;
            }
        }
        dTable.Rows.Add(dRow);
        ViewState["dTable"] = dTable;

        GridView1.DataSource = ViewState["dTable"];
        GridView1.DataBind();
 }







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-17 00:12:40 By : loogway
 


 

No. 2



โพสกระทู้ ( 616 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ทำไมไม่ใช้

Code (VB.NET)
DataGridView.Rows.Add(textbox1,textbox2)

ผลที่ได้ก็คือ ถ้ากดปุ่มมันก็จะ add row ไปรื่อยๆ ครับ ตามที่เรากรอกครับ บรรทัดเดียวจบ


ประวัติการแก้ไข
2011-08-17 19:36:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-17 19:35:48 By : slurpee55555
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ตอบความคิดเห็นที่ : 2 เขียนโดย : slurpee55555 เมื่อวันที่ 2011-08-17 19:35:48
รายละเอียดของการตอบ ::
GridView กับ DataGridView มันทำงานต่างกันน่ะครับ ใน ASP.NET ใช้แบบนั้นไม่ได้ครับ เพราะค่าจะหายไปหลังจากที่ทำงานเสร็จแล้วครับ ไม่สามารถเรียกค่าที่มีอยู่ ณ ปัจจุบัน เหมือน Windows Form ครับ โดย ASP.NET จะต้องเรียกใช้ผ่าน ViewState ครับ


กระทู้นี้ถือว่ามีประโยชน์มากเลยครับ เพราะผมเอ็งกยังงไม่เคยเรียกใช้จาก ViewState ปกติเรียกใช้แต่จาก Session ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-17 20:28:49 By : webmaster
 


 

No. 4



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

กรณีเรียกใช้ผ่าน Session จะง่ายกว่า ViewState น่ะครับ แต่ใช้ทรัพยากรของ Server สูงนิดหนึ่ง

Go to : ASP.NET - Session (DataSet and DataTable)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-17 20:32:04 By : webmaster
 


 

No. 5



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ตัวอย่างการสร้าง Session กับ DataTable ที่ไม่ได้มาจาก Database

Code (VB.NET)
        Dim dt As New DataTable
        Dim dr As DataRow
		
	'*** Column ***'
        dt.Columns.Add("CustomerID")
        dt.Columns.Add("Name")
        dt.Columns.Add("Email")
        dt.Columns.Add("CountryCode")
        dt.Columns.Add("Budget")
        dt.Columns.Add("Used")
		
	'*** Rows ***'
	dr = dt.NewRow
	dr("CustomerID") = "C001"
	dr("Name") = "Win Weerachai"
	dr("Email") = "[email protected]"
	dr("CountryCode") = "TH"
	dr("Budget") = "1000000"
	dr("Used") = "600000"
	dt.Rows.Add(dr)
	
	Session("myCart") = dt


แต่ถ้าต้องการเพิ่มตำแหน่งใน Session ของ DataTable ก็ไม่ยากครับ

Code (VB.NET)
        Dim dt As DataTable = CType(Session("myCart"),DataTable)
        Dim dr As DataRow
			
	'*** Rows ***'
	dr = dt.NewRow
	dr("CustomerID") = "C003"
	dr("Name") = "Tony Stark"
	dr("Email") = "[email protected]"
	dr("CountryCode") = "US"
	dr("Budget") = "3000000"
	dr("Used") = "600000"
	dt.Rows.Add(dr)
	
	Session("myCart") = dt


สามารถนำ Session ไปยัดลง DataSource ของ GridView ได้เลยครับ

Code (VB.NET)
   Me.GridView.DataSource = CType(Session("myCart"),DataTable) 
   Me.DataBid()

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-17 20:34:19 By : webmaster
 


 

No. 6



โพสกระทู้ ( 616 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

อ๋อครับ ดูผิด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-17 20:41:38 By : slurpee55555
 


 

No. 7



โพสกระทู้ ( 113 )
บทความ ( 0 )



สถานะออฟไลน์


ต่อจากกระทู่ด้านบนมีเป็นหานิดนึ่งนะครับคือใช้คำสั่งลบยังไงครับ...อิอิ
คือว่าให้คลิกที่ปุ่มลบใน GridView แล้วให้มันลบที่ละ Row นะครับคำสั่งที่ผมเขียนมันไม่ลบให้นะครับ อิอิ
ช่วยดูช่วยทีหรือว่ามีวิธีที่ดีง่ายกว่านี้ช่วยแนะนำที่ครับ...

Code (PHP)
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Default3 : System.Web.UI.Page
{
    private DataTable dTable;
    private DataRow dRow;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack == false)
        {
            ViewState["dTable"] = new DataTable();
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string[] strCol = { "CategoryID", "CategoryName" };
        dTable = (DataTable)ViewState["dTable"];
        foreach (string str in strCol)
        {
            if (!dTable.Columns.Contains(str))
            {
                dTable.Columns.Add(str);
            }
        }
        dRow = dTable.NewRow();
        foreach (string str in strCol)
        {
            switch (str)
            {
                case "CategoryID":
                    dRow[str] = TextBox1.Text;
                    break;
                case "CategoryName":
                    dRow[str] = TextBox2.Text;
                    break;
            }
        }
        dTable.Rows.Add(dRow);
        ViewState["dTable"] = dTable;

        GridView1.DataSource = ViewState["dTable"];
        GridView1.DataBind();

        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            GridView1.Rows[i].Cells[0].HorizontalAlign = HorizontalAlign.Center;
            GridView1.Rows[i].Cells[1].HorizontalAlign = HorizontalAlign.Center;
            GridView1.Rows[i].Cells[2].HorizontalAlign = HorizontalAlign.Left;
        }
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            ImageButton l = (ImageButton)e.Row.FindControl("ImageButton1");

            l.Attributes.Add("onclick", "javascript:return " +
                 "confirm('คุณต้องการลบข้อมูล ใช่หรือไม่ " +
                 DataBinder.Eval(e.Row.DataItem, "CategoryID") + "')");
        }
    }
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int categoryID = (int)GridView1.DataKeys[e.RowIndex].Value;
        DeleteRecordByID(categoryID); 
    }
    private void DeleteRecordByID(int categoryID)
    {
        Response.Write(categoryID);
        int Grid = GridView1.Rows.Count;
        for (int i = 0; i < Grid; i++)
        {
            if (categoryID != null)
            {
                GridView1.DeleteRow(categoryID);
            }
        }
        GridView1.DataBind();


    }
    protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e)
    {

    }
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Delete")
        {
            int categoryID = Convert.ToInt32(e.CommandArgument);
            // Delete the record 
            DeleteRecordByID(categoryID);

        }
    }
}




    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    <br />
    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    <asp:GridView ID="GridView1" runat="server" onrowcommand="GridView1_RowCommand" 
        onrowdatabound="GridView1_RowDataBound" onrowdeleted="GridView1_RowDeleted" 
        onrowdeleting="GridView1_RowDeleting">
        <Columns>
            <asp:TemplateField HeaderText="ลบ">
                <ItemTemplate>
                    <asp:ImageButton ID="ImageButton1" runat="server" 
                        ImageUrl="~/images/Delete_16x16.png" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>



ประวัติการแก้ไข
2011-08-17 21:37:41
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-17 21:35:31 By : loogway
 


 

No. 8



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

หา Index ที่จะลบแล้วใช้คำสั่ง

Code (C#)
Customers.Rows[0].Delete();


0 คือ Index ของ Rows ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-17 21:41:58 By : webmaster
 


 

No. 9



โพสกระทู้ ( 113 )
บทความ ( 0 )



สถานะออฟไลน์


พอใจมีตัวอย่างพอเป็นแนวทางป่าวครับ...อิอิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-20 14:11:58 By : loogway
 


   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่องนำค่าที่ได้จาก TextBox ใสใน GridView โดยที่ไม่ต้องเก็บลง Database ก่อน แต่เก็บไว้ใน ViewState
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่