PDA

View Full Version : سوال: combobox داینامیک



baran.f.a
دوشنبه 06 بهمن 1393, 21:31 عصر
سلام یه سوال خیلی مهم و فوری داشتم من جدولی دارم به صورت زیر :
127938

می خوام فرمی طراحی کنم که در ان combobox داشته باشم که سه داده ی کارمند ، کارگر و خدماتی را داشته باشه با انتخاب هر کدام از ان ها در یک combobox دیگه فقط داده های مربوطه نمایش داده بشن برای مثال اگر کارمند انتخاب شد در combobox بعدی (حکمی ، قراردادی ، رسمی) نمایش داده بشن در نهایت شناسه combobox دوم ذخیره می شه برای مثال اگه قراردادی انتخاب بشه شناسه 12 در جدول ذخیره می شه لطفا راهنماییم کنید. خیلی ضروریه .

fatboy
دوشنبه 06 بهمن 1393, 22:06 عصر
دیتا سورس DropDownList1 (لیست اول) : select Tbl_EtName from table where Tbl_EtParentId_fk = 0
در رویداد selected index change لیست اول
دیتا سورس DropDownList2 لیست دوم : select Tbl_EtName from table where Tbl_EtParentId_fk = DropDownList1.SelectedIndex

baran.f.a
دوشنبه 06 بهمن 1393, 22:40 عصر
دیتا سورس DropDownList1 (لیست اول) : select Tbl_EtName from table where Tbl_EtParentId_fk = 0
در رویداد selected index change لیست اول
دیتا سورس DropDownList2 لیست دوم : select Tbl_EtName from table where Tbl_EtParentId_fk = DropDownList1.SelectedIndex

سلام یعنی باید اینجوری بنویسم ؟


protected void Page_Load(object sender, EventArgs e)
{
string connectionString = "Data Source=(local);Initial Catalog=company;Integrated Security=SSPI;";
SqlConnection conObj = new SqlConnection(connectionString);
string commandText = "select * from Tbl_EmploymentType where Tbl_EtParentId_fk = 0";
SqlDataAdapter adpt = new SqlDataAdapter(commandText, conObj);


DataTable dt = new DataTable();


adpt.Fill(dt);


DropDownList1.DataSource = dt;


DropDownList1.DataBind();


DropDownList1.DataTextField = "Tbl_EtName";


DropDownList1.DataValueField = "Tbl_EtId";
DropDownList1.DataBind();


}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string connectionString = "Data Source=(local);Initial Catalog=company;Integrated Security=SSPI;";
SqlConnection conObj = new SqlConnection(connectionString);
string commandText = "select Tbl_EtName from table where Tbl_EtParentId_fk = DropDownList1.SelectedIndex";
SqlDataAdapter adpt = new SqlDataAdapter(commandText, conObj);


DataTable dt = new DataTable();


adpt.Fill(dt);


DropDownList2.DataSource = dt;


DropDownList2.DataBind();


DropDownList2.DataTextField = "Tbl_EtName";


DropDownList2.DataValueField = "Tbl_EtId";
DropDownList2.DataBind();
}


این الان جواب نمیده .

fatboy
سه شنبه 07 بهمن 1393, 14:45 عصر
سلام یعنی باید اینجوری بنویسم ؟


protected void Page_Load(object sender, EventArgs e)
{
string connectionString = "Data Source=(local);Initial Catalog=company;Integrated Security=SSPI;";
SqlConnection conObj = new SqlConnection(connectionString);
string commandText = "select * from Tbl_EmploymentType where Tbl_EtParentId_fk = 0";
SqlDataAdapter adpt = new SqlDataAdapter(commandText, conObj);


DataTable dt = new DataTable();


adpt.Fill(dt);


DropDownList1.DataSource = dt;


DropDownList1.DataBind();


DropDownList1.DataTextField = "Tbl_EtName";


DropDownList1.DataValueField = "Tbl_EtId";
DropDownList1.DataBind();


}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string connectionString = "Data Source=(local);Initial Catalog=company;Integrated Security=SSPI;";
SqlConnection conObj = new SqlConnection(connectionString);
string commandText = "select Tbl_EtName from table where Tbl_EtParentId_fk = DropDownList1.SelectedIndex";
SqlDataAdapter adpt = new SqlDataAdapter(commandText, conObj);


DataTable dt = new DataTable();


adpt.Fill(dt);


DropDownList2.DataSource = dt;


DropDownList2.DataBind();


DropDownList2.DataTextField = "Tbl_EtName";


DropDownList2.DataValueField = "Tbl_EtId";
DropDownList2.DataBind();
}


این الان جواب نمیده .

نه!
داخل تابع DropDownList1_SelectedIndexChanged کوئریتون رو اشتباه نوشتین

string commandText = "select Tbl_EtName from table where Tbl_EtParentId_fk =" DropDownList1.SelectedIndex;

همچنین اگر می خواهید از فیلد Tbl_EtId استفاده کنید باید Tbl_EtId رو هم select کنید یعنی

string commandText = "select Tbl_EtName,Tbl_EtId from table where Tbl_EtParentId_fk =" DropDownList1.SelectedIndex;

baran.f.a
سه شنبه 07 بهمن 1393, 14:53 عصر
سلام ممنون ولی دقیقا از همین خط خطا می گیره :
stringcommandText = "select Tbl_EtName,Tbl_EtId from Tbl_EmploymentType where Tbl_EtParentId_fk ="DropDownList1.SelectedIndex;

aslan
سه شنبه 07 بهمن 1393, 15:07 عصر
string commandText = "select Tbl_EtName,Tbl_EtId from table where Tbl_EtParentId_fk =" +DropDownList1.SelectedIndex;

baran.f.a
سه شنبه 07 بهمن 1393, 16:53 عصر
string commandText = "select Tbl_EtName,Tbl_EtId from table where Tbl_EtParentId_fk =" +DropDownList1.SelectedIndex;


combobox اول کار می کنه ولی دومی نه هر کدوم از داده های combobox های اول را انتخاب می کنم هیج تغییری در combobox اول ایجاد نمی شه .

neda555
سه شنبه 07 بهمن 1393, 22:24 عصر
AutoPostBack=True هست؟

aslan
سه شنبه 07 بهمن 1393, 23:19 عصر
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string connectionString = "Data Source=(local);Initial Catalog=company;Integrated Security=SSPI;";
SqlConnection conObj = new SqlConnection(connectionString);
string commandText = "select * from [Table] where Tbl_EtParentId_fk = 0";
SqlDataAdapter adpt = new SqlDataAdapter(commandText, conObj);
DataTable dt = new DataTable();
adpt.Fill(dt);
DropDownList1.DataSource = dt;
DropDownList1.DataBind();
DropDownList1.DataTextField = "Tbl_EtName";
DropDownList1.DataValueField = "Tbl_EtId";
DropDownList1.DataBind();
DropDownList1_SelectedIndexChanged(null, null);
}
}

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string connectionString = "Data Source=(local);Initial Catalog=company;Integrated Security=SSPI;";
SqlConnection conObj = new SqlConnection(connectionString);
string commandText = "select * from [table] where Tbl_EtParentId_fk ="+DropDownList1.SelectedValue;
SqlDataAdapter adpt = new SqlDataAdapter(commandText, conObj);
DataTable dt = new DataTable();
adpt.Fill(dt);
DropDownList2.DataSource = dt;
DropDownList2.DataBind();
DropDownList2.DataTextField = "Tbl_EtName";
DropDownList2.DataValueField = "Tbl_EtId";
DropDownList2.DataBind();
}

در ضمن AutoPostBack
DropDownList1 را true کنید
...
موفق باشید