首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过textbox onchange事件刷新GridView/LINQ数据源

如何通过textbox onchange事件刷新GridView/LINQ数据源
EN

Stack Overflow用户
提问于 2009-07-28 16:17:36
回答 4查看 14.1K关注 0票数 1

我在获取textbox以刷新onchange事件中的GridView时遇到了麻烦。

GridView链接到LINQ数据源,并且LINQ数据源有一个从文本框中获取的Where参数UserId ...代码如下:

代码语言:javascript
运行
复制
    <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>

到目前为止,我还没有后端代码。由于我在默认情况下将textbox设置为12,因此GridView将加载UserId 12的记录,但现在我希望在更改textbox中的数字时重新加载GridView。有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-07-29 02:17:24

首先,将AutoPostBack属性添加到TextBox中:

代码语言:javascript
运行
复制
<asp:TextBox ID="textbox_UserId" Text="12" runat="server" 
    AutoPostBack="true" ontextchanged="textbox_UserId_TextChanged"/>

然后,在后面的代码中添加以下代码:

代码语言:javascript
运行
复制
protected void textbox_UserId_TextChanged(object sender, EventArgs e)
{
    GridView1.DataBind();
}
票数 5
EN

Stack Overflow用户

发布于 2009-07-28 21:25:30

只要打个电话

代码语言:javascript
运行
复制
GridView1.DataBind();

在您输入新值之后。

票数 2
EN

Stack Overflow用户

发布于 2012-01-18 13:26:22

代码语言:javascript
运行
复制
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()

但在网格视图中不存在任何行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1195180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档