Передача значения при выборе на GridView на другую страницу - PullRequest
2 голосов
/ 22 марта 2011

У меня есть GridView, который показывает некоторые данные:

Entity_ID (PK)
Имя
Описание

Теперь я включаю Выбрать в моемВид сетки.Мне нужно передать Entity_ID на другую страницу, и на этой странице я показываю больше содержимого для этого Entity_ID.

Как выбрать значение Entity_ID и передать его как строку запроса?У меня есть этот код:

ProductsDataGridView.SelectedRows(0).Cells(1).Value.ToString()

Любые ответы будут оценены!Спасибо.

Ответы [ 7 ]

6 голосов
/ 22 марта 2011

Добавьте новый столбец шаблона элемента в свою сетку и добавьте ссылку выбора, как показано ниже.

<asp:TemplateField HeaderText="View Details">
<ItemTemplate>
    <asp:HyperLink ID="lnkSelect" runat='server' NavigateUrl='<%# String.Format("~/detailspagename.aspx?ID={0}", Eval("Entity_ID")) %>'>Select</asp:HyperLink>
</ItemTemplate>

2 голосов
/ 22 марта 2011

Вот что я сделал:

 protected void gvAgentList_SelectedIndexChanged(object sender, EventArgs e)
    {
        GridViewRow row = gvAgentList.SelectedRow;
        Response.Redirect("~/FrontEnd/Registration.aspx? EntityID=" + row.Cells[0].Text);
    }
1 голос
/ 22 марта 2011

Используйте событие OnRowSelected. Как только он вызывает, вы можете получить выбранную строку, а затем идентификатор объекта. Затем вы можете создать строку с идентификатором объекта в строке запроса и response.redirect для этой страницы.

0 голосов
/ 09 марта 2013
 protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
 {
    string fname, lname;
    fname = GridView1.Rows[e.NewEditIndex].Cells[0].Text;
    Session["fname"] = fname;
    lname = GridView1.Rows[e.NewEditIndex].Cells[1].Text;
    Session["lname"] = lname;
    Response.Redirect("gridpass.aspx");
 }

На gridpass.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
   TextBox1.Text = Session["fname"].ToString();
   TextBox2.Text = Session["lname"].ToString();
}
0 голосов
/ 22 марта 2011

@ GSGuy:

<asp:GridView runat ="server" ID = "gvAgentList" 
            AllowPaging = "True" 
            AutoGenerateSelectButton="True" AllowSorting="True" BackColor="#E8E8E8" 
            BorderColor="#003399" BorderStyle="Solid" BorderWidth="1px" Height="375px" 
            Width="823px"  AutoGenerateColumns="False" 
            DataKeyNames="ID" DataSourceID="SqlDataSource1" onselectedindexchanged="gvAgentList_SelectedIndexChanged">


        <AlternatingRowStyle ForeColor="#0066CC" />
        <Columns>

            <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
                ReadOnly="True" SortExpression="ID" />
            <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
            <asp:BoundField DataField="Description" HeaderText="Description" 
                SortExpression="Description" />

<asp:TemplateField HeaderText="View Details">
<ItemTemplate>
    <asp:HyperLink ID="lnkSelect" runat='server' NavigateUrl='<%# String.Format("~/detailspagename.aspx?ID={0}", Eval("Entity_ID")) %>'>Select</asp:HyperLink>
</ItemTemplate>

        </Columns>
        <HeaderStyle ForeColor="#3366FF" />

    </asp:GridView>
0 голосов
/ 22 марта 2011

Вы также можете использовать DataKeys, установленный DataKeys='Entity_ID'

В коде, указанном ниже, вы можете получить доступ к тому же ключу, что и selectedrow.DataKeys[rowindex]["Entity_ID"]

здесь выбранная строка - это та, которую вы выбрали, rowindex индекс ивы получите соответствующий Entity_ID

0 голосов
/ 22 марта 2011

Существует несколько подходов к передаче данных между страницами:

http://msdn.microsoft.com/en-us/library/6c3yckfw.aspx

Строка запроса в порядке, если вы не возражаете, URL будет содержать идентификатор

вы также можете рассмотреть Page.PreviousPage из приведенных выше вариантов, что кажется разумным в вашем случае

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...