c# - 如何让 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>
解决方案
推荐阅读
- wordpress - 如何从订单中删除结帐页面上的缺货产品并显示它们
- android - 如何从 Android 中的微调器中删除 4 和 5 索引
- apache-spark - 在 databricks 运行时 6.4 中找不到 Spark 2.4.5 from_csv 函数
- python - AttributeError:“NoneType”对象没有属性“GetLayer”
- python - 如何加快此 UTC 转换过程?
- java - Java 将 dateTime 转换为给定的格式
- reporting-services - SSRS 通过单击 ID 字段将参数传递到同一页面中的子报表
- ios - 更改 ContextMenu iOS 外观(背景和突出显示颜色)
- javascript - Odoo11 EE 如何去除签名广告
- ios - 如何通过视图转发特定 TouchType 的所有触摸?