1

テキストボックスでonchangeイベントからGridViewを更新するのに問題がありました。

GridViewはLINQデータソースにリンクされており、LINQデータソースにはテキストボックスから取得するWhereパラメーターUserIdがあります...コードは次のとおりです。

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

これまでのところ、バックエンドコードには何もありません。テキストボックスをデフォルトで12に設定したので、GridViewはUserId 12のレコードでロードされますが、テキストボックスの番号を変更した場合にGridViewをリロードする必要があります。何か案は?

4

4 に答える 4

5

まず、AutoPostBackプロパティをTextBoxに追加します。

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

次に、これをコードの後ろに置きます。

protected void textbox_UserId_TextChanged(object sender, EventArgs e)
{
    GridView1.DataBind();
}
于 2009-07-29T02:17:23.720 に答える
2

電話するだけ

GridView1.DataBind();

新しい値を入力した後。

于 2009-07-28T21:25:30.300 に答える
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()

ただし、gridviewに行がありません

于 2012-01-18T05:26:22.433 に答える
-1

datatableメソッドを作成して

GridView1.DataSource = method(); GridView1.DataBind();

于 2012-03-26T13:18:30.260 に答える