Question

J'ai des soucis avec mon champ de saisie pour rafraîchir un GridView de l'événement onchange.

Le GridView est lié à une source de données LINQ et la source de données LINQ a un paramètre UserId Où qu'il reçoit de la zone de texte ... Voici le code:

    <asp:Label ID="label_UserId" runat="server" Text="Search by User Id: "></asp:Label>
    <asp:TextBox ID="textbox_UserId" Text="12" runat="server" 
        ontextchanged="textbox_UserId_TextChanged"></asp:TextBox>

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="UserID" DataSourceID="LINQUserSource" 
        EmptyDataText="There are no data records to display.">
        <Columns>
            <asp:BoundField DataField="UserID" HeaderText="UserID" ReadOnly="True" 
                SortExpression="UserID" />
            <asp:BoundField DataField="Username" HeaderText="Username" 
                SortExpression="Username" />
            <asp:BoundField DataField="FirstName" HeaderText="FirstName" 
                SortExpression="FirstName" />
            <asp:BoundField DataField="LastName" HeaderText="LastName" 
                SortExpression="LastName" />
            <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
        </Columns>
    </asp:GridView>

    <asp:LinqDataSource ID="LINQUserSource" runat="server" 
        ContextTypeName="DotNetNuke.Modules.Report.UsersDataContext" 
        Select="new (UserID, Username, FirstName, LastName, Email)" Where="UserId = @UserId"
        TableName="Users">
        <WhereParameters>
            <asp:ControlParameter
                Name="UserId"
                DefaultValue="0"
                ControlID="textbox_UserId"
                Type="Int32" /> 
        </WhereParameters>
    </asp:LinqDataSource>

Jusqu'à présent, je n'ai rien pour le code back-end. Depuis que je mets la zone de texte à être 12 par défaut, les charges GridView avec le record de 12 UserId, mais maintenant je veux que le GridView pour recharger si je change le numéro dans la zone de texte. Toutes les idées?

Était-ce utile?

La solution

Ajoutez d'abord la propriété AutoPostBack à votre TextBox:

<asp:TextBox ID="textbox_UserId" Text="12" runat="server" 
    AutoPostBack="true" ontextchanged="textbox_UserId_TextChanged"/>

Ensuite, mettez dans votre code derrière:

protected void textbox_UserId_TextChanged(object sender, EventArgs e)
{
    GridView1.DataBind();
}

Autres conseils

Il suffit d'appeler

GridView1.DataBind();

après avoir entré une nouvelle valeur.

OleDbCommand cmd = new OleDbCommand("update ESInfo1 set OrdTime='" + td.ToString() + "', SSO2='" + DropSupportOfficer.Text + "', Orderby='" + Txthst.Text + "' where Sln=" + Txtsln.Text + "", con);
cmd.ExecuteNonQuery();
GridView1.DataBind();
cmd.Dispose()

mais pas de ligne présent dans gridview

créer une méthode datatable et revenir

  

= GridView1.DataSource procédé (); GridView1.DataBind ();

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top