Я пытаюсь фильтровать информацию, используя множество выпадающих списков одновременно. Проблема заключается в том, что при изменении выбранного значения раскрывающегося списка таблица не создается, пока я не выберу значение в других раскрывающихся списках. Я уже реализовал OnSelectedIndexChanged в раскрывающихся атрибутах, но он все еще ожидает, что я дам другие раскрывающиеся значения, которые, кстати, также являются параметрами хранимых процедур. Любая идея о том, как изменить мою логику c, полезна. спасибо (справочные изображения) referenceimage c# код
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Test16
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
public void Process(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection("Data Source=DESKTOP-SM35TU3;Initial Catalog=TEST;Integrated Security=True"))
{
using (SqlCommand cmd = new SqlCommand("Sp_Filtertest", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@country", SqlDbType.VarChar).Value = country.Text;
cmd.Parameters.AddWithValue("@ethnicity", SqlDbType.VarChar).Value = ethnicity.Text;
cmd.Parameters.AddWithValue("@gender", SqlDbType.VarChar).Value = gender.Text;
cmd.Parameters.AddWithValue("@companyindustry", SqlDbType.VarChar).Value = companyindustry.Text;
conn.Open();
//cmd.ExecuteNonQuery();
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
DataTable dt = new DataTable();
adp.Fill(ds);
dt = ds.Tables[0];
StringBuilder sb = new StringBuilder();
//Table start.
sb.Append("<table cellpadding='5' cellspacing='0' style='border: 1px solid #ccc;font-size: 9pt;font-family:Arial'>");
//Adding HeaderRow.
sb.Append("<tr>");
foreach (DataColumn column in dt.Columns)
{
sb.Append("<th style='background-color: #B8DBFD;border: 1px solid #ccc'>" + column.ColumnName + "</th>");
}
sb.Append("</tr>");
//Adding DataRow.
foreach (DataRow row in dt.Rows)
{
sb.Append("<tr>");
foreach (DataColumn column in dt.Columns)
{
sb.Append("<td style='width:100px;border: 1px solid #ccc'>" + row[column.ColumnName].ToString() + "</td>");
}
sb.Append("</tr>");
}
//Table end.
sb.Append("</table>");
Tableresults.Text = sb.ToString();
//conn.Close();
//F
}
}
}
}
}
моя хранимая процедура
ALTER procedure [dbo].[Sp_Filtertest]
@gender nvarchar(50)=NULL,
@country nvarchar(50)=NULL,
@ethnicity nvarchar(50)=NULL,
@companyindustry nvarchar(50)=NULL
as
Select Id, UserName, Email, Gender,AgeofUser, JobTitle,
CompanyIndustry, HouseHoldIncome, Ethnicity, Country,StateName from AspNetUsers
where (Gender = IIF(ISNULL(@gender, '') = '', Gender, @Gender))
and (Country = IIF(ISNULL(@country, '') = '', Country, @country))
and (Ethnicity = IIF(ISNULL(@ethnicity, '')='',Ethnicity,@ethnicity))
and (CompanyIndustry = IIF(ISNULL(@companyindustry,'')='',CompanyIndustry,@companyindustry))
group by Id, UserName, Email, Gender,AgeofUser, JobTitle, CompanyIndustry, HouseHoldIncome, Ethnicity, Country,StateName