我正在使用 ASP.net C# 开发 map 应用程序。
我有一个文本框和按钮,用于根据邮政编码搜索数据库并将结果返回到我的 aspx 页面上的 GridView 中...
public partial class _Default : System.Web.UI.Page
{
// SDE connection string to extract postcode from ADDRESS (sde) table.
private SqlConnection m_sqlConn;
protected void Page_Load(object sender, EventArgs e)
{
}
private void ShowMsg(string strMessage)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
if (txtPostCode.Text.Length > 0)
{
m_sqlConn = new SqlConnection();
m_sqlConn.ConnectionString = "Data Source=Server1;Initial Catalog=sde;User
ID=Tom;Password = Password1";
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = m_sqlConn;
sqlCmd.CommandType = System.Data.CommandType.Text;
sqlCmd.CommandText = "SELECT * FROM ADDRESS"
+ " WHERE Postcode = '" + txtPostCode.Text + "'";
m_sqlConn.Open();
SqlDataReader reader = sqlCmd.ExecuteReader();
GridView1.DataSource = reader;
GridView1.DataBind();
}
else
{
ShowMsg("Error - No Postal Addresses Returned");
}
}
catch (Exception ex)
{
ShowMsg("Error - " + ex.Message);
}
}
private bool CloseDB()
{
try
{
m_sqlConn.Close();
return (true);
}
catch (Exception ex)
{
return (false);
}
}
}
这很好用。我现在想在模式弹出窗口中设置数据网格,用户单击搜索按钮并以模式方式返回结果表。我试过像这样用一个假的 ControlID 按钮来设置它,但没有成功......
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Button id="BtnFake" runat="server" Style="display: none"/>
<table id="ModalGrid">
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
<asp:Button id="Button2" runat="server" Text="OK" />
</table>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
TargetControlID="BtnFake" PopupControlID="ModalGrid" DropShadow="false"
BackgroundCssClass="ModalBackground"
CancelControlID="BtnOK" BehaviorID="ModalGrid" RepositionMode="RepositionOnWindowScroll">
</cc1:ModalPopupExtender>
有什么想法吗?确定我在做一些明显错误的事情。干杯。
最佳答案
- 在设置模式弹出窗口的场景中
TargetControlId
到虚拟字段,您必须显式调用ModalPopupExtender1.Show();
显示模态。 - BtnOK 在哪里?不应该是 Button2 吗?
提示 - 为虚拟字段使用按钮有点矫枉过正,使用像 <span>
这样简单的东西相反
下面是一个工作示例,如果你遇到困难,但我相信调用 ModalPopupExtender1.Show();
应该解决你:
ASPX:
<form id="form1" runat="server">
<asp:ToolkitScriptManager ID="sm" runat="server">
</asp:ToolkitScriptManager>
<span ID="dummy" runat="server" />
Post code: <asp:TextBox ID="txtPostcode" runat="server" /><br />
<asp:Button ID="btnSearch" runat="server" Text="Search" OnClick="Search" />
<asp:Panel runat="server" ID="modalPanel" CssClass="modalPanel">
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
<asp:Button ID="btnCancel" runat="server" Text="Cancel" />
</asp:Panel>
<asp:ModalPopupExtender id="ModalPopupExtender1" runat="server" TargetControlID="dummy"
PopupControlID="modalPanel" BackgroundCssClass="ModalBackground"
CancelControlID="btnCancel" BehaviorID="ModalGrid">
</asp:ModalPopupExtender>
</form>
代码隐藏:
protected void Search(object sender, EventArgs e)
{
List<PostalCode> codes = new List<PostalCode>()
{
new PostalCode{ Code="000",Province="District 0" },
new PostalCode{ Code="111",Province="District 1" }
};
string code = txtPostcode.Text;
if (codes.Where(c => c.Code == code).Any())
{
GridView1.DataSource = codes.Where(c => c.Code == code);
GridView1.DataBind();
ModalPopupExtender1.Show();
}
}
我用于测试的类:
public class PostalCode
{
public string Code { get; set; }
public string Province { get; set; }
}
关于c# - Modal PopUp Extender 中的 GridView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14523533/