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 > ทำปุ่มคลิกดูรายละเอียดใน Gridview โดยใช้ RowDataBound แต่ไม่ว่าจะคลิกปุ่มไหนก็ส่งค่าของแถวสุดท้ายหมดค่ะ



 

ทำปุ่มคลิกดูรายละเอียดใน Gridview โดยใช้ RowDataBound แต่ไม่ว่าจะคลิกปุ่มไหนก็ส่งค่าของแถวสุดท้ายหมดค่ะ

 



Topic : 108350

Guest




ทำเว็บแอพเชื่อมต่อฐานข้อมูลที่แสดงใน Gridview จะมีปุ่มคลิกไปดูรายละเอียดอีกหน้าหนึ่งค่ะ
โดยใช้ ID ของแถวที่ถูกคลิก ส่งค่าไปแบบ Session ให้อีกหน้านำไปติดต่อกับฐานข้อมูล
แต่คลิกปุ่มแถวไหนก็แล้วแต่ มันจะส่ง ID ของแถวสุดท้ายที่แสดงตลอด จะแก้ไขอย่างไรดีคะ

Code (ASP)
 <asp:GridView ID="SearchGrview" runat="server" AllowPaging="True" AutoGenerateColumns="False" onselectedindexchanged="myGridView_SelectedIndexChanged"
   CellPadding="4" ForeColor="#333333" GridLines="None" style="text-align: left" Width="700px">
        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
        <Columns>
            <asp:TemplateField HeaderText="รหัสแผนงาน">
                <ItemTemplate>
                    <div align="center"><asp:Label ID="lblPlancode" runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.Plancode") %>'></asp:Label></div>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="ชื่อแผนงาน">
              <ItemTemplate>
                    <asp:Label ID="lblPlanname" runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.planname") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="แก้ไข">
              <ItemTemplate>
                     <div align="center"><asp:ImageButton ID="btnEdit" runat="server" ImageUrl="~/Image/EditIcon.gif"></asp:ImageButton></div>
                </ItemTemplate> 
            </asp:TemplateField>
            <asp:TemplateField HeaderText="ลบ">
                <ItemTemplate>
                    <div align="center"><asp:ImageButton ID="btnDelete" runat="server" ImageUrl="~/Image/DelIcon.gif"></asp:ImageButton></div>
                </ItemTemplate> 
            </asp:TemplateField>
            <asp:TemplateField HeaderText="รายละเอียด">
                <ItemTemplate>
                     <div align="center"><asp:ImageButton ID="btnDetail" runat="server" ImageUrl="~/Image/DetailIcon.gif"></asp:ImageButton></div>
                </ItemTemplate> 
            </asp:TemplateField>
        </Columns>
    </asp:GridView>



Code (VB.NET)
Sub myGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles SearchGrview.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim DetailBtn As ImageButton = CType(e.Row.FindControl("btnDetail"), ImageButton)
            If Not IsNothing(DetailBtn) Then
                Dim planId As String = e.Row.DataItem("Plancode").ToString()
                Session("searchID") = planId
                DetailBtn.Attributes.Add("Onclick", "javascript:window.open('Default2.aspx','_blank');")
            End If
        End If
    End Sub




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







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-05-14 16:13:21 By : BeginnerD View : 1707 Reply : 4
 

 

No. 1

Guest


ไม่แปลกครับ คุณเก็บตัวแปรไว้ใน Session("searchID")

เวลารันมันจะรันอย่างนี้ครับ
Session("searchID") = row1
Session("searchID") = row2
Session("searchID") = row3
Session("searchID") = row4
.
.
.
Session("searchID") = row10
เพราะครั้งสุดท้ายมันจะเก็บเป็นค่า row10

ทำให้ส่งค่าเป็นตัวนี้ตลอดครับ

วิธีแก้คือเก็บตัวแปร planId ไว้กับตัว button แต่ละตัวเลยครับ
Code (VB.NET)
DetailBtn.Attributes.Add("Onclick", "javascript:window.open('Default2.aspx?planId='"&planId&",'_blank');")







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-14 16:45:05 By : ฟุริคุริ
 


 

No. 2

Guest


ที่หน้า Default2.aspx ก็ใส่โค้ดนี้เข้าไปที่ PageLoad เพื่อรับค่าตัวแปรแล้วไปดึงข้อมูลจากดาต้าเบสมาแสดงครับ
Code (VB.NET)
Request.QueryString("planId")

หวังว่าจะเข้าใจนะ อิอิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-14 16:50:23 By : ฟุริคุริ
 

 

No. 3

Guest


แก้ไขได้ตามที่คุณฟุริคุริบอกเลยค่ะ ขอบคุณที่สละเวลามาตอบนะคะ :D
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-15 08:51:50 By : BeginnerD
 


 

No. 4



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



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


ไม่ทราบว่าแก้ไขยังไงหรอครับ คือผมก็ทำตามแล้ว แต่เหมือน ข้อมูลมันยังไม่ส่งข้ามไปอ่ะครับ
รันผ่าน แต่ดูเหมือนว่าตรงบรรทัดนี้
Code (VB.NET)
DetailBtn.Attributes.Add("Onclick", "javascript:window.open('Default2.aspx?planId='"&planId&",'_blank');")

มันเหมือนไม่ทำงานเลยอ่ะครับ เวลาคลิกแล้วไม่เข้า JavaScript ด้วย

Code (ASP)
<asp:TemplateField HeaderText="Corective" HeaderStyle-Width="100px" ItemStyle-HorizontalAlign="Center">
                <ItemTemplate>
                    <asp:Button ID="btnClick" runat="server" Height="20px" />
                </ItemTemplate>

                    <HeaderStyle Width="100px" HorizontalAlign="Center"></HeaderStyle>

                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>


Code (VB.NET)
Protected Sub GridView11_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GridView11.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim btnCorr As Button = CType(e.Row.FindControl("btnClick"), Button)
            If Not IsNothing(btnCorr) Then
                Dim num_material As String = e.Row.DataItem("num_material").ToString()
                'Session("searchID") = num_material
                btnCorr.Attributes.Add("Onclick", "javascript:window.open('correctivepage.aspx?num_material='" & num_material & ");")
            End If
        End If
    End Sub

อันนี้เป็นโค้ดของผมครับ ต้องไปเพิ่มตรงไหนอีกไหมหว่า

ส่วนอีกหน้าหนึ่งที่เรียกใช้ ผมลองเรียกใช้โดย
Code (VB.NET)
Response.Write(Request.QueryString("num_material") + "<br/>")


ใส่ไว้ตรงเพจโหลดแล้ว ก็ไม่เกิดอะไรขึ้นเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-07 17:04:53 By : shadowstorm
 

   

ค้นหาข้อมูล


   
 

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