He estado teniendo problemas para conseguir mi cuadro de texto para actualizar un GridView desde el evento onchange.

El GridView está vinculado a una LINQ origen de datos y el LINQ fuente de datos tiene una Donde el Parámetro UserId que se obtiene desde el cuadro de texto… Aquí está el código:

    <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>

Hasta ahora no tengo nada para el backend de código. Desde que me puse el cuadro de texto en el 12 por defecto, el control GridView de cargas con el registro de id de usuario 12, pero ahora quiero que el GridView para volver a cargar si puedo cambiar el número en el cuadro de texto. Alguna idea?

InformationsquelleAutor Matt | 2009-07-28

4 Comentarios

  1. 5

    Agregar primero la propiedad AutoPostBack en su cuadro de texto:

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

    A continuación, poner esto en el código detrás de:

    protected void textbox_UserId_TextChanged(object sender, EventArgs e)
    {
        GridView1.DataBind();
    }
  2. 0
    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()

    pero no hay ninguna fila presente en gridview

    • Es claro para mí cómo se solucionó el problema (en todo caso), ¿te importaría explicar su respuesta más?
  3. -1

    crear un datatable método y volver

    GridView1.DataSource = método(); GridView1.DataBind();

Dejar respuesta

Please enter your comment!
Please enter your name here