【发布时间】:2016-06-03 11:25:39
【问题描述】:
我在网上找到了几个类似主题的解决方案,但我没有找到任何明确的解决方案和我正在处理的案例的解释。以下是我需要帮助的问题/领域:
如何使用基于第一个下拉列表 (CompanyDDL) 中所选公司的联系信息 (Email) 填充第二个下拉列表 (EmailDDL)。我想在这里指出两点: 一个。我只有一个表而不是两个表,并且我没有其他解决方案中提到的关联 ID。 (见下文) 湾。我在后面的代码中使用存储过程(见下文)
我不太清楚 OnSelectedIndexChanged="ContactEmailList_SelectedIndexChanged" 和我的 sproc2 存储过程如何使用 @Company 值过滤电子邮件列表之间的区别。有人会分享知识吗?换句话说,第一个下拉列表中的选定值如何传递给存储过程sproc2?
我没有问题只使用下拉列表 asp 控件填充第一个下拉列表,而不必使用 Dataset 或 SqlDataAdapter 。我需要将它们用于第二个下拉列表吗?
-
到目前为止,我得到了第一个下拉列表(公司列表)和第二个下拉列表(ContactEmail)中所有电子邮件的长列表。我需要让第二个列表被第一个列表过滤。请帮忙。如果有可能一步一步的方法与图解的代码示例将非常有帮助和赞赏。
谢谢
背景信息:
2 个存储过程:sproc1 和 sproc2 以及 1 个具有 3 列的 SQL 表 (ContactInfo):
公司、联系人姓名、联系人电子邮件。
sproc1: procedure [dbo].[sproc1]
as
begin
Select distinct [Company] From [ContactInfo]
end
sproc2: procedure [dbo].[sproc2] @Company nvarchar(50) = null
as
begin
Select distinct [ContactName],[ContactEmail] From [ContactInfo]
where [Company] = @Company
end
aspx:
//First Dropdownlist:
<p>Company:<br />
<asp:DropDownList ID="Company_DDList" runat="server"
Width="355px" Height="24px"
DataSourceID="ContactInfo"
DataTextField="Company"
DataValueField="Company"
AutoPostBack="true"
AppendDataBoundItems="true"
onselectedindexchanged =
"Company_DDList_SelectedIndexChanged">
<asp:ListItem Enabled="true"
Selected="True"
Text="-- select --">
</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="ContactInfo" runat="server"
ConnectionString="<%$ ConnectionStrings:My_ConnectionString %>"
SelectCommand="sproc1"
SelectCommandType="StoredProcedure">
</asp:SqlDataSource>
//Second Dropdownlist:
<p>Contact:<br />
<asp:DropDownList ID="Contact_DDList" runat="server"
Width="355px" Height="24px"
DataSourceID="ContactInfo"
DataTextField="Email"
DataValueField="Email"
AutoPostBack="true"
AppendDataBoundItems="true"
onselectedindexchanged="Contact_DDList_SelectedIndexChanged">
<asp:ListItem Enabled="true"
Selected="True"
Text="-- select --">
</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="ContactInfo" runat="server"
ConnectionString="<%$ ConnectionStrings:My_ConnectionString %>"
SelectCommand="sproc2"
SelectCommandType="StoredProcedure">
</asp:SqlDataSource>
aspx.c //////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Net.Mail;
using System.Net;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
public string query;
SqlConnection con = new
SqlConnection(ConfigurationManager.ConnectionStrings
["MyConnectionString"].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
con.Open();
//SubmitButton.Enabled = false;
//Label1.Visible = false;
}
protected void Company_DDList_SelectedIndexChanged(object sender, EventArgs
e)
{
query = "sproc2";
SqlCommand cmd = new SqlCommand(query, con);
cmd.CommandType = CommandType.StoredProcedure;
?????
}
protected void Contact_DDList_SelectedIndexChanged(object sender, EventArgs
e)
{
//
{
【问题讨论】:
标签: c# asp.net stored-procedures drop-down-menu