.NET Logo
Welcome Guest Search | Active Topics | Members | Log In | Register

ถามเกี่ยวกับการส่งค่า ข้าม page โดยใช้ Gridview คับ กรุณาทีคับ Options · View
zerozaaa
Posted: Thursday, September 11, 2008 10:03:46 PM
Rank: มือพระกาฬ
Groups: Member

Joined: 6/13/2008
Posts: 79

 

รหัสสินค้า ชื่อสินค้า เลือก รูปภาพ
1001 vga select ดูภาพ
1002 ram select ดูภาพ
1003 hard select ดูภาพ

 

โดยที่กด ดูรูปภาพ แล้วจะส่ง ค่า session["id_product"] ข้าม page  คับ โดยสมุทติ มีpage ชื่อว่า picture.aspx  รอรับ ค่าของ session["id_product"] แล้วคับ
แล้ว id_product คือรหัสสินค้าคับโดยจะส่ง รหัสสินค้าที่เลือก ไม่รู้ว่าเขียนส่วนไหนของ gridview คับ แล้วเขียนอย่างไรคับ ช่วยแนะนำทีคับ

ขอบคุณคับ

 

 

nuttaponp
Posted: Friday, September 12, 2008 8:23:54 AM
Rank: มือพระกาฬ
Groups: Member

Joined: 9/9/2008
Posts: 62


ผมใช้ OnRowCommand ของ Gridview

    protected void Gridview1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
       int rowIndex = Convert.ToInt32(e.CommandArgument);
       if (e.CommandName == "select")
        {
            //สิ่งที่จะทำเมื่อเลือก select
        }
        else if (e.CommandName == "showpicture")
        {
            string id = GridView1.Rows[rowIndex].Cells[0].Text;
            Session["id_product"] = id;
            Response.Redirect("picture.aspx");
        }
    }


อันนี้ html tag ของ Gridview

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowCommand="GridView1_RowCommand" >
            <Columns>
                <asp:BoundField HeaderText="รหัสสินค้า" DataField="product_id" />
                <asp:BoundField HeaderText="ชื่อสินค้า" DataField="product_name" />
                <asp:ButtonField CommandName="select" HeaderText="เลือก" Text="select" />
                <asp:ButtonField CommandName="showpicture" HeaderText="รูปภาพ" Text="ดูภาพ" />
            </Columns>
        </asp:GridView>
 

ZeedZard
Posted: Friday, September 12, 2008 3:27:47 PM
Rank: มือพระกาฬ
Groups: Member

Joined: 6/12/2008
Posts: 50
Location: King Mongkut's Institute of Technology Ladkrabang
ผมส่งไปให้ในเมล์แล้วนะครับ ขอโทษทีที่ตอบช้าไปหน่อยครับ ทำตามวิธีของคุณ nuttaponp นี่หล่ะครับ ได้แล้ว
zerozaaa
Posted: Friday, September 12, 2008 4:41:06 PM
Rank: มือพระกาฬ
Groups: Member

Joined: 6/13/2008
Posts: 79

ขอบคุณคับ แล้วขอถามอีกนิด เมื่อกด แล้วให้ ไปเปิดหน้าใหม่เลยได้ไหมคับ ผมหา Taget    bank_ ไม่มีเลยคับ
หรือต้องทำยังไงคับ ช่วยด้วยคับ

ZeedZard
Posted: Friday, September 12, 2008 5:10:49 PM
Rank: มือพระกาฬ
Groups: Member

Joined: 6/12/2008
Posts: 50
Location: King Mongkut's Institute of Technology Ladkrabang
จากโค๊ด คุณ nuttaponp เมื่อกดก็จะเข้าไปเช็คว่า commandname ที่ได้รับมาเป็น select หรือ showpicture ถ้าเป็น showpicture ก็เอาค่า id เก็บในsession แล้วก็เปิดหน้าใหม่นี่ครับ
ตรงตามจุดประสงค์หรือป่าวครับ หรือต้องการทำอะไรหรอครับ อ่านแล้วงงนิดหน่อย ฮ่าๆๆๆ โทษทีครับ
zerozaaa
Posted: Friday, September 12, 2008 8:21:13 PM
Rank: มือพระกาฬ
Groups: Member

Joined: 6/13/2008
Posts: 79

เปิดหน้าใหม่ คับแต่หน้าเก่าก็อยู่ อ่ะคับ เปิดเพิ่มขึ้นไปอีก หน้าคับ

ผมทำได้แต่ โดยใช้   Request.QueryString  แต่ผมอย่ากส่งไปโดยใช้ session น่ะคับ

nuttaponp
Posted: Friday, September 12, 2008 11:04:29 PM
Rank: มือพระกาฬ
Groups: Member

Joined: 9/9/2008
Posts: 62

 

อยากจะเปิดหน้าใหม่ขึ้นมา ไม่ยากครับ
แต่เนื่องจาก ASP.NET ไม่ support เรื่องนี้ ฉะนั้นเราจะใช้ Javascript

แก้นิดเดียวครับ

    protected void Gridview1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
       int rowIndex = Convert.ToInt32(e.CommandArgument);
       if (e.CommandName == "select")
        {
            //สิ่งที่จะทำเมื่อเลือก select
        }
        else if (e.CommandName == "showpicture")
        {
            string id = GridView1.Rows[rowIndex].Cells[0].Text;
            Session["id_product"] = id;
           
            string newWindow = " <SCRIPT language=javascript>\n" +
                                " window.open('picture.aspx', '_blank')\n"+
                                " </SCRIPT>";
            RegisterClientScriptBlock("launchNewWindow", newWindow);

        }
    }


 

zerozaaa
Posted: Saturday, September 13, 2008 5:07:49 PM
Rank: มือพระกาฬ
Groups: Member

Joined: 6/13/2008
Posts: 79

ขอบคุณมากๆๆคับ

ช่วยอธิบาย javascript ทีคับ  RegisterClientScriptBlock("launchNewWindow", newWindow);   อธิบายทีคับ

nuttaponp
Posted: Monday, September 15, 2008 7:52:50 AM
Rank: มือพระกาฬ
Groups: Member

Joined: 9/9/2008
Posts: 62


ในที่นี้ผมใช้ฟังชั่น window.open ซึ่งเป็นฟังชันใน Javascript  ดังนั้นการจะใช้ต้องอยู่ภายใน tag <Script Langauge="JavaScript"> และ </script> จากนั้นใช้ RegisterClientScriptBlock เพื่อเพิ่ม Client Script นี้เข้าไปในเวบฟอร์ม
รูปแบบคือ RegisterClientScriptBlock(string key,string script)

เพิ่มเติมครับ
พอดีตัวอย่างอันนี้ผมลอกมาจากโปรเจ็กเก่าของผม ซึ่งเป็น .NET Framework 1.1
ถ้าเป็น .NET Framework 2.0 ให้ใช้ ClientScript.RegisterClientScriptBlock แทนครับ
จากตัวอย่างข้างต้นก็จะเป็น ClientScript.RegisterClientScriptBlock(this.GetType(),"launchNewWindow", newWindow);
 

Users browsing this topic
Guest


Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Main Forum RSS : RSS

YAFVision Theme Created by Jaben Cargman (Tiny Gecko)
Powered by Yet Another Forum.net version 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.


Sponsored by