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,037

HOME > .NET Framework > Forum > ต้องการนำข้อมูลใน textbox ที่กรอกใน gridview ออกมาใช้งาน



 

ต้องการนำข้อมูลใน textbox ที่กรอกใน gridview ออกมาใช้งาน

 



Topic : 046517

Guest




คือผม DataBind grid โดยให้มัน Autogenerate colums ให้

แล้วใน cell ที่ผมต้องการพิมพ์ผมก็จะ add ใส่ทีหลัง โดยใช้

TextBox tb = new TextBox();
tb.ID = "txtBox";
GridView1.Rows[x].Cells[y].Controls.Add(tb);.

หลังจาก run สามารถกรอกข้อมูลได้ปรกติ

แต่พอจะนำข้อมูลมาใช้ไม่สามารถดึงออกมาได้

ได้ทดลองใช้

((TextBox)GridView1.Rows[x].Cells[y].Controls[0]).Text;
((TextBox)GridView1.Rows[x].FindControl("txtBox")).Text;
((TextBox)GridView1.Rows[x].Controls[0]).Text;

แล้วไม่สามารถนำข้อมูลออกมาได้
รบกวนใครทราบวิธีช่วยบอกหน่อยครับ



Tag : .NET, Oracle, Web (ASP.NET), C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-08-04 17:13:22 By : urachima View : 1919 Reply : 8
 

 

No. 1



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

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

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

Go to : ASP.NET GridView Control - FindControl






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-08-04 17:32:48 By : webmaster
 


 

No. 2

Guest


ในตัวอย่างที่ให้มานั้น control ใน grid ได้กำหนดไว้ก่อนหน้า DataBind แล้ว ทำให้สามารถ FindControl ได้

แต่ในกรณีของผม BindData จาก DataTable แล้ว จึง Add Control

ตอนนี้จึงยังไม่สามารถนำค่าใน Control ออกมาใช้ได้

รบกวนด้วยครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-08-05 09:06:47 By : urachima
 

 

No. 3



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



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


หมายถึงกรอกค่าใส่ TextBox ที่อยู่ใน GridView แล้วจะเอาค่าในTextนั้นมาใช่มั้ยครับ

-> TextBox xxx = (TextBox)GridView1.Rows[0].FindControl("txt1");
xxx.text ก็ได้ค่าแล้วครับ ลองดู
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-08-05 18:31:47 By : nongakpb
 


 

No. 4



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



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


กริดวิว ใช้เป็นเทมเพลตง่ายกว่ามั้ยคะ

Code (ASP)
 <Columns>
   <asp:TemplateField HeaderText="Recorded Date">
                        <ItemTemplate>
                            <asp:Label ID="lblrecorddate" runat="server" Text='<%# Bind("recorddate") %>'></asp:Label>
                        </ItemTemplate>
                        <ItemStyle HorizontalAlign="Center" />
                    </asp:TemplateField>
                  <asp:TemplateField HeaderText="Recorded by">
                        <ItemTemplate>
                            <asp:Label ID="lblrecordby" runat="server" Text='<%# Bind("recordby") %>'></asp:Label>
                        </ItemTemplate>
                        <ItemStyle HorizontalAlign="Center" />
                    </asp:TemplateField>
                   
                    <asp:TemplateField HeaderText="Responsible">
                        <ItemTemplate>
                            <asp:TextBox ID="txtresponse" runat="server" Height="40px" Width="200px" 
                                TextMode="MultiLine" Text='<%# (Eval("status"))== "Pending" ? "":Eval("responsetext")%>'></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField HeaderText="Responsible by" DataField ="responseby"/>
                   
                      <asp:TemplateField HeaderText="Responsible Date">
                        <ItemTemplate>
                            <asp:Label ID="lblresponsedate" runat="server" Text='<%# Bind("responsedate") %>'></asp:Label>
                        </ItemTemplate>
                        <ItemStyle HorizontalAlign="Center" />
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Status">
                        <ItemTemplate>
                            <asp:DropDownList ID="ddlactionstatus" runat="server" text='<%# Bind("status") %>' >
                                <asp:ListItem>Pending</asp:ListItem>
                                <asp:ListItem>Inprocess</asp:ListItem>
                                <asp:ListItem>Complete</asp:ListItem>
                            </asp:DropDownList>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>


Code (C#)
 GridView1.DataSource = DT;
                    GridView1.DataBind();
                    DT.Dispose();

                    for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
                    {
                       TextBox responsetext = (TextBox)GridView1.Rows[i].FindControl("txtresponse");

                        Label lblrecorddate = (Label)GridView1.Rows[i].FindControl("lblrecorddate");
                        Label lblresponsedate = (Label)GridView1.Rows[i].FindControl("lblresponsedate");

                        lblrecorddate.Text = Convert.ToDateTime(lblrecorddate.Text).ToString("dd/MM/yyyy HH:mm");
                        if (lblresponsedate.Text != "")
                        {
                            lblresponsedate.Text = Convert.ToDateTime(lblresponsedate.Text).ToString("dd/MM/yyyy HH:mm");
                        }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-08-05 23:30:29 By : njnight
 


 

No. 5

Guest


ปัญหาของผมคือ user สามารถกำหนดเองได้ว่าต้องดู columns ใดบ้าง จึงไม่สามารถกำหนดจำนวน FieldTemplate ได้

หากรู้จำนวน columns แน่นอน ผมก็สามารถกำหนด FieldTemplate เองได้ครับ และก็จะสามารถใช้ FindControl ได้

ส่วนรายละเอียดปัญหาก็เหมือนด้านบนตามเดิม

ใครพอรู้แนวทางแก้ไขยังไงรบกวนทีนะครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-08-06 10:35:20 By : urachima
 


 

No. 6



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


ตอบความคิดเห็นที่ : 5 เขียนโดย : urachima เมื่อวันที่ 2010-08-06 10:35:20
รายละเอียดของการตอบ ::
ถ้าไม่รู้ filed ที่แน่นอนต้อง add column แบบ dynamic ที่ code behide ครับ

แต่ add เป็น template field ค่อนข้างยากกว่าพวก boundfield เล็กน้อย



ประวัติการแก้ไข
2010-08-06 11:02:53
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-08-06 10:44:23 By : tungman
 


 

No. 7



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


คิดวิธีดีๆ ออกแล้ว

ก็โชว์มันทุก column เลยซิครับ แล้วเวลา user เลือกดู column ไหนก็โชว์เฉพาะ column นั้น

ที่เหลือก็ hide ให้หมด การใช้ show/hide จะง่ายกว่า add แบบ dynamic ครับ

เวลาอ้างอิง column index แล้ว index ก็ไม่เลื่อนด้วย


ประวัติการแก้ไข
2010-08-06 11:04:00
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-08-06 10:48:59 By : tungman
 


 

No. 8

Guest


ต้องขอบคุณแนวคิดของคุณ tungman นะครับ

ตอนนี้ผมแก้ได้แล้วครับ

โดยให้มันโชว์ทุก columns โดยทุก columns นั้นทำเป็น template ไว้ ใส่ textbox ข้างในพร้อมกับตั้ง visible = false

เวลา user ต้องการใช่ columns ไหน ก็ visible = ture ขึ้นมา

วิธีนี้จะสามารถใช้ FindControl ได้ครับ

เผื่อใครเจอปัญหาแบบผมก็ลองใช้วิธีนี้ดูนะครับ

แล้วก็ต้องขอขอบคุณทุกท่านที่ช่วยกันหาวิธีแก้ด้วยนะครับ

ขอบคุณมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-08-09 10:25:56 By : urachima
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ต้องการนำข้อมูลใน textbox ที่กรอกใน gridview ออกมาใช้งาน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่