Как отобразить данные из базы данных после выбора строки в Gridview - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть Gridview с привязкой к данным и HyperLinkField для просмотра информации о строке, перенаправленной на следующую страницу. Столбцы, отображаемые в Gridview, являются лишь небольшой частью в моей базе данных, и я хочу, чтобы данные всей базы данных, включая те, которые не показаны в GridView, отображались на следующей странице.

Я пытался использовать DataNavigateUrlFieldsно это будет отображать только записи, которые находятся в GridView.

Вот некоторые части моего кода

<asp:GridView ID="gvStock" CssClass="GV" runat="server" enablepagingandcallbackz="false" AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" OnSorting="OnSorting" OnPageIndexChanging="OnPageIndexChanging"  PageSize="20" BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4" CellSpacing="2" ForeColor="Black">
    <Columns>
        <asp:HyperLinkField Text="View" DataNavigateUrlFields="pCode,pID,bCode,SBrand,SDescription,sCost,sPrice,SType,sSupplierName,sSupplierDirect" DataNavigateUrlFormatString="ProductDetail.aspx?pCode={0}&pID={1}&bCode={2}&SBrand={3}&SDescription={4}&sCost={5}&sPrice={6}&SType={7}&sSupplierName={8}&sSupplierDirect={9}"/>
        <asp:BoundField DataField="pCode" HeaderText="Product Code" />
        <asp:BoundField DataField="pID" HeaderText="PID"/>
</Columns>
</asp:GridView>

Код позади

protected void gvStock_SelectedIndexChanged(object sender, EventArgs e)
        {
            string id = gvStock.SelectedRow.Cells[0].Text;
            Response.Redirect("ProductDetail.aspx?");
        }

1 Ответ

0 голосов
/ 11 ноября 2019

Я приведу один пример ... так что вы можете легко понять ... применить свою логику ... в своем коде ...

.aspx Page

<asp:GridView ID="grdTesting" runat="server" AutoGenerateColumns="false" Width="98%">
            <Columns>
                <asp:TemplateField HeaderText="Job Number">
                    <ItemTemplate>
                        <asp:LinkButton ID="lnkTest" runat="server" Text='<% # Bind("Test") %>' ToolTip='<%# Bind("Test") %>'
                            OnClick="lnkTest_Click"></asp:LinkButton>
                        <asp:HiddenField ID="hdnId" runat="server" Value='<% # Bind("Id") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

.aspx.cs Page

protected void lnkTest_Click(object sender, EventArgs e)
    {
        GridViewRow gvr = (GridViewRow)((Control)sender).Parent.Parent;
        HiddenField hdnId = (HiddenField)gvr.FindControl("hdnId");

    if(Convert.ToString(hdnId.value)=="1")
    {
            Response.Redirect("frmTest1.aspx?Id=" + Convert.ToString(hdnId.Value), false);
    }

    else if(Convert.ToString(hdnId.value)=="2")
    {
        Response.Redirect("frmTest2.aspx?Id=" + Convert.ToString(hdnId.Value), false);
    }
    else
    {
        Response.Redirect("frmTest.aspx?Id=" + Convert.ToString(hdnId.Value), false);
    }
    }

Примечание: -

При загрузке страницы необходимоbind GridView (в соответствии с вашими предпочтениями ..)

Предположим, у вас есть Gridview с кнопкой ссылки (которая перенаправляет на разные страницы ...)

Итак, вам также необходимо связать Id. ....... так можно перенаправить на разные страницы в соответствии с вашим идентификатором ...

При нажатии кнопки ссылки вы можете перенаправить на другую страницу (в соответствии с вашей логикой ..) с отправкой значения строки запроса(Id)

Я использую asp.net с c # 4.5

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