首页 > 解决方案 > 如何让 GridView 从 TextBox 弹出作为 asp.net 中的 Searchfield

问题描述

在这里,我附上了我的 Windows 应用程序图像。当我按下回车键时,会弹出 GridView。

请在https://drive.google.com/open?id=10rVH8KNewOsxp2gIa7bNywVQW3rW_Mfw查看图片

我也想在 ASP.net 应用程序中使用这种类型的搜索视图。

请告诉我怎么可能做到这一点。我打算做的是,当用户在焦点位于 TextBox 内时按下回车键时,GridView 应该在弹出窗口中打开,如果用户选择行,则所选行将返回文本框的值这是选定的客户名称。

我在 .ascx 中尝试过的内容

<asp:TextBox ID="txtLovFilter" runat="server"
ontextchanged="txtLovFilter_TextChanged"></asp:TextBox>
    <asp:LinkButton ID="lbpop" runat="server"></asp:LinkButton>


<!--Model popup extender-->
<cc1:ModalPopupExtender ID="mpLovFilter" runat="server" PopupControlID="pnLovFilter" TargetControlID="lbpop" CancelControlID="btnClose" BackgroundCssClass="modalBackground">
</cc1:ModalPopupExtender>
<asp:Panel ID="pnLovFilter" runat="server" CssClass="modalPopup" style="display:none">
<div class="dvLovFilter">
<asp:GridView ID="gvLovFilter" runat="server" 
OnRowDataBound="gvLovFilter_RowDataBound">
</asp:GridView><br />
<asp:Button ID="btnClose" runat="server" Text="Close"/>
</div>
</asp:Panel>

在 ascx.cs 代码中

protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                gvLovFilterBind();
            }
        }
        public void gvLovFilterBind()
        {
            DataTable dt = new DataTable();
            DataSet ds = DatabaseUntil.ReturnDataSet("exec GetLovQuery '" + _LovFor + "'");
            string sqlqry = ds.Tables[0].Rows[0]["Query"].ToString();
            sqlqry = sqlqry.Replace("<<COMPANYCODE>>", "1");
            sqlqry = sqlqry.Replace("<<PRODUCTCODE>>", "1");
            sqlqry = "Select top 20" + sqlqry;

            foreach (DataRow dr in ds.Tables[1].Rows)
            {
                if (dr["Visible"].ToString() == "1" && dr["position"].ToString() == "D")
                {
                    BoundField bfield = new BoundField();
                    bfield.HeaderText = dr["rd_column_caption"].ToString();
                    bfield.DataField = dr["rd_column_name"].ToString();
                    bfield.HeaderStyle.Width = Convert.ToInt32(dr["rd_column_width"].ToString());
                    bfield.ItemStyle.Width = Convert.ToInt32(dr["rd_column_width"].ToString());
                    gvLovFilter.Columns.Add(bfield);
                }
            }
            gvLovFilter.DataSource = DatabaseUntil.ReturnDataTable(sqlqry);
            gvLovFilter.AutoGenerateColumns = false;
            gvLovFilter.DataBind();
        }
        private string _LovFor;
        public string LovFor
        {
            get { return _LovFor; }
            set { _LovFor = value; }
        }

在 aspx 中

<vs:LovFilter ID="LovFilter1" runat="server" Text="" LovFor="Customer"></vs:LovFilter>

标签: c#sqlasp.netuser-controls

解决方案


推荐阅读