在GridView中单击某一行,此时会弹出(或跳转)新页面,根据该行商品的ID展现具体商品信息.
请问怎么实现

解决方案 »

  1.   

    通过hyperlink或a href链接页面。
    或在databound里添加行的js脚本,实现跳转。    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowIndex != -1)
            {
                e.Row.Attributes.Add("onclick", "Url('" + this.GridView1.DataKeys[e.Row.RowIndex].Value.ToString().Trim() + "')");
            }
        }
    参考
      

  2.   

    用SelectedIndexChanged就可以了
    <asp:CommandField ButtonType="Button" HeaderText="添加新語言" ShowHeader="True" SelectText="Add" ShowSelectButton="True">
                    <HeaderStyle Width="1%" Wrap="False" />
                    <ItemStyle HorizontalAlign="Center" />
          </asp:CommandField>protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
             Response.Redirect("~/B.aspx?QID=" + aQid + "&Flag=1");
        }
      

  3.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
             
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                   e.Row.Attributes["onclick"] = String.Format("javascript:window.location={0}", .....);
                // 额外样式定义
                      }
      

  4.   

    如果是彈出新頁面(window.open())建議用js做.//绑定链接
        protected void CPSGridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            string plant = string.Empty;
            string sloc = string.Empty;
            string material = string.Empty;
            string mvt = string.Empty;
            string inorout = string.Empty;
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                plant = e.Row.Cells[1].Text.Trim();
                sloc = e.Row.Cells[2].Text.Trim();
                material = e.Row.Cells[3].Text.Trim();
                mvt = e.Row.Cells[6].Text.Trim();
                inorout = e.Row.Cells[8].Text.Trim();
                e.Row.Cells[3].Text = "<a href=\"javascript:OpenPage('" + plant + "','" + sloc + "','" + material + "','" + mvt + "','" + inorout + "')\">" + material + "</a>";
            }
        }// JScript File    function OpenPage(plant,sloc,material,mvt,inorout)
        {
            var page="SSTDBDetail.aspx?Plant="+plant+"&SLoc="+sloc+"&Material="+material+"&Mvt="+mvt+"&InOrOut="+inorout ;
            window.open (page, 'newwindow', 'height=500, width=1000, top=0, left=0, toolbar=no, menubar=no, scrollbars=yes, resizable=yes,location=n o, status=no')
        }
      

  5.   

    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) 
    ...{ 
    //注册行单击事件 
    e.Row.Attributes.Add("onclick", "javascirpt:你要执行的操作"); 

    ID用e.Row.RowIndex 获取
      

  6.   

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "edit")
            {
                Server.Transfer("~/EditRoom.aspx?RoomId=" + e.CommandArgument);
            }
        }<%@ Page Language="C#" MasterPageFile="~/ContentMaster.master" AutoEventWireup="true" CodeFile="EditRoom.aspx.cs" Inherits="EditRoom" Title="无标题页" %><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="100%" 
            AutoGenerateRows="False" DataSourceID="objRoom" DefaultMode="Edit" 
            ondatabound="DetailsView1_DataBound">
            <FieldHeaderStyle Width="60px" />
            <Fields>
                <asp:TemplateField HeaderText="RoomID" SortExpression="RoomID">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("RoomID") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <InsertItemTemplate>
                        <asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("RoomID") %>'></asp:TextBox>
                    </InsertItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label7" runat="server" Text='<%# Bind("RoomID") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="房间号" SortExpression="Number">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" 
                            Text='<%# Bind("Number") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <InsertItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Number") %>'></asp:TextBox>
                    </InsertItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("Number") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="床位数" SortExpression="BedNumber">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("BedNumber") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <InsertItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("BedNumber") %>'></asp:TextBox>
                    </InsertItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("BedNumber") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="描述" SortExpression="Description">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox3" runat="server" Height="150px" 
                            Text='<%# Bind("Description") %>' TextMode="MultiLine" Width="250px"></asp:TextBox>
                    </EditItemTemplate>
                    <InsertItemTemplate>
                        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Description") %>'></asp:TextBox>
                    </InsertItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("Description") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="房间类型" SortExpression="RoomType">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox6" runat="server" 
                            Text='<%# Eval("RoomType.TypeName") %>'></asp:TextBox>
                        <asp:HiddenField ID="HiddenField1" runat="server" 
                            Value='<%# Eval("RoomType.TypeId") %>' />
                    </EditItemTemplate>
                    <InsertItemTemplate>
                        <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("RoomType") %>'></asp:TextBox>
                    </InsertItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label6" runat="server" Text='<%# Bind("RoomType") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="状态" SortExpression="State">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox4" runat="server" 
                            Text='<%# GetRoomType(Eval("State").ToString()) %>'></asp:TextBox>
                    </EditItemTemplate>
                    <InsertItemTemplate>
                        <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("State") %>'></asp:TextBox>
                    </InsertItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label4" runat="server" Text='<%# Bind("State") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="客人数" SortExpression="GuestNumber">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("GuestNumber") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <InsertItemTemplate>
                        <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("GuestNumber") %>'></asp:TextBox>
                    </InsertItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label5" runat="server" Text='<%# Bind("GuestNumber") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField ShowHeader="False">
                    <EditItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" CommandName="update">更新</asp:LinkButton>
                    </EditItemTemplate>
                </asp:TemplateField>
            </Fields>
        </asp:DetailsView>
        <asp:ObjectDataSource ID="objRoom" runat="server" 
            DataObjectTypeName="HotelModel.Room" 
            OldValuesParameterFormatString="original_{0}" onupdated="objRoom_Updated" 
            onupdating="objRoom_Updating" SelectMethod="GetRoomByRoomId" 
            TypeName="HotelBLL.RoomManager" UpdateMethod="UpdateRoom">
            <SelectParameters>
                <asp:QueryStringParameter Name="roomId" QueryStringField="roomId" 
                    Type="Int32" />
            </SelectParameters>
        </asp:ObjectDataSource>
    </asp:Content>