2009-07-28 13 views
1

onchangeイベントからGridViewを更新するためにテキストボックスを取得する際に問題が発生しています。TextBox onchangeイベントからGridView/LINQデータソースをリフレッシュする方法

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

は、これまでのところ、私はのために何もありません:GridViewのは、LINQデータソースとLINQデータソースにリンクアップされ

は、それがテキストボックスから取得することをどこパラメータユーザーIDを持っている...ここでは、コードですバックエンドコード。デフォルトでは、テキストボックスを12に設定しているので、GridViewはUserId 12のレコードでロードしますが、テキストボックスの数値を変更すると、GridViewをリロードします。何か案は?

答えて

5

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

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

をその後、後ろのあなたのコードでこれを置く:

2

あなたは、新しい値を入力した後だけ

GridView1.DataBind(); 

を呼び出します。

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

protected void textbox_UserId_TextChanged(object sender, EventArgs e) 
{ 
    GridView1.DataBind(); 
} 
が、GridViewの中に無い行存在

+0

これがどのように問題を解決するかはわかりませんが、答えをさらに説明してもらえますか? – RobV

-1

作成データテーブルメソッドと戻り値

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

関連する問題