Záznam v GridView zobrazit v ItemTemplate formuláře.   zodpovězená otázka

ASP.NET WebForms

Prosím o nasměrování s tímto začátečnickým problémem. V GridView mám zobrazeny data z tabulek databáze a dole pod tím mám FormView pro přidávání, úpravu a mazání záznamů. Jak docílit toho, aby se mi po kliknutí na příslušný řádek v tabulce GridView, zobrazil tento záznam ve formuláři pod. Mám to obojí na stejný SQLDatasource. Tuším, že by to mělo jít přes přidané tlačítko do GridView a po kliknutí na něj změnit nějakou hodnotu určující pozici v databázi. Ale nejsem schopen pokročit dál.

Díky za každou radu.

nahlásit spamnahlásit spam 0 / 2 odpovědětodpovědět

http://videoarchiv.altairis.cz/Entries/1...

Záznam z přednášky - 1. část

cca 59. minúta

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji už to běží, snad to pochopím.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Skúste toto.

Je to pre GridView1, FormView1, tabuľku Table1 s dvoma stĺpcami, ID a Meno, na stránke Default.aspx. SqlDataSource sú dva.

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>    
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="ID" DataSourceID="SqlDataSource1">
            <Columns>
            <asp:TemplateField>
            <ItemTemplate>            
                <asp:HyperLink ID= "HyperLink1" runat="server" Text="Vyber" 
                NavigateUrl='<%#Eval("ID", "Default.aspx?ID={0}")%>' />
            </ItemTemplate>
            </asp:TemplateField>  
                <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
                    ReadOnly="True" SortExpression="ID" />
                <asp:BoundField DataField="Meno" HeaderText="Meno" SortExpression="Meno" />
            </Columns>
        </asp:GridView>
        
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
            SelectCommand="SELECT * FROM [Table1] ORDER BY [Meno]" 
            DeleteCommand="DELETE FROM [Table1] WHERE [ID] = @ID" 
            InsertCommand="INSERT INTO [Table1] ([Meno]) VALUES (@Meno)" 
            UpdateCommand="UPDATE [Table1] SET [Meno] = @Meno WHERE [ID] = @ID">
            <DeleteParameters>
                <asp:Parameter Name="ID" Type="Int32" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="Meno" Type="String" />
                <asp:Parameter Name="ID" Type="Int32" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="Meno" Type="String" />
            </InsertParameters>
        </asp:SqlDataSource>    
       
        <asp:FormView ID="FormView1" runat="server" DataKeyNames="ID" 
            DataSourceID="SqlDataSource2">
            <EditItemTemplate>
                ID:
                <asp:Label ID="IDLabel1" runat="server" Text='<%# Eval("ID") %>' />
                <br />
                Meno:
                <asp:TextBox ID="MenoTextBox" runat="server" Text='<%# Bind("Meno") %>' />
                <br />
                <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" 
                    CommandName="Update" Text="Update" />
                &nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" 
                    CausesValidation="False" CommandName="Cancel" Text="Cancel" />
            </EditItemTemplate>
            <InsertItemTemplate>
                Meno:
                <asp:TextBox ID="MenoTextBox" runat="server" Text='<%# Bind("Meno") %>' />
                <br />
                <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" 
                    CommandName="Insert" Text="Insert" />
                &nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server" 
                    CausesValidation="False" CommandName="Cancel" Text="Cancel" />
            </InsertItemTemplate>
            <ItemTemplate>
                ID:
                <asp:Label ID="IDLabel" runat="server" Text='<%# Eval("ID") %>' />
                <br />
                Meno:
                <asp:Label ID="MenoLabel" runat="server" Text='<%# Bind("Meno") %>' />
                <br />
                <asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" 
                    CommandName="Edit" Text="Edit" />
                &nbsp;<asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False" 
                    CommandName="Delete" Text="Delete" />
                &nbsp;<asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" 
                    CommandName="New" Text="New" />
            </ItemTemplate>            
        </asp:FormView>
        
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
            DeleteCommand="DELETE FROM [Table1] WHERE [ID] = @ID" 
            InsertCommand="INSERT INTO [Table1] ([Meno]) VALUES (@Meno)" 
            SelectCommand="SELECT * FROM [Table1] WHERE ([ID] = @ID)" 
            UpdateCommand="UPDATE [Table1] SET [Meno] = @Meno WHERE [ID] = @ID">
            <SelectParameters>
                <asp:QueryStringParameter Name="ID" QueryStringField="ID" Type="Int32" 
                    DefaultValue="1" />
            </SelectParameters>
            <DeleteParameters>
                <asp:Parameter Name="ID" Type="Int32" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="Meno" Type="String" />
                <asp:Parameter Name="ID" Type="Int32" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="Meno" Type="String" />
            </InsertParameters>
        </asp:SqlDataSource>    
    </div>
    </form>
</body>
</html>

SqlDs1 a SqlDs2 musíte predtým naklikať. Ľubovoľné. A samozrejme vytvoriť databázu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

A aby Vás nemiatlo, že sa to nezobrazuje hneď v GridView tak do default.aspx.vb pridajte

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub SqlDataSource2_Deleted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource2.Deleted
        GridView1.DataBind()
    End Sub

    Protected Sub SqlDataSource2_Inserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource2.Inserted
        GridView1.DataBind()
    End Sub

    Protected Sub SqlDataSource2_Updated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource2.Updated
        GridView1.DataBind()
    End Sub
End Class

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

A aby si Tomáš Herceg nemyslel, že nič nás nenaučil, tak tak:

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub SqlDataSource2_Deleted(ByVal sender As Object, _
    ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) _
    Handles SqlDataSource2.Deleted, SqlDataSource2.Inserted, SqlDataSource2.Updated
        GridView1.DataBind()
    End Sub
End Class

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback