HI there
I have 2 dropdownlist in my page
1--ddlTarde
2--ddlTradeClass
and 2 table in database
1-Trade table
Tname
|
Id
|
Industry
|
1
|
Cloth
|
2
|
2-Tradeclass
Tname
|
Class
|
Id
|
Industry
|
Electronic
|
1
|
Industry
|
Car
|
2
|
cloth
|
Scarf
|
3
|
Cloth
|
Pants
|
4
|
I bind ddlTrade from Tradetable and I want when users click on Item from ddlTrade it bind data from ddlTradeclass that TNAME=ddlTrade.selectedItem in ddltradeClass for this I used below code
for binding ddltrade
BindDropDownList(DDLtrade, "tradename", "Name", "id");
protected void BindDropDownList(DropDownList DDL, string spname, string dataTextfield, string dataValuefield)
{
SqlCommand _cmd = new SqlCommand(spname, _cn);
_cmd.CommandType = CommandType.StoredProcedure;
_cn.Open();
SqlDataReader _dr = _cmd.ExecuteReader();
if (_dr.HasRows)
{
DDL.DataSource = _dr;
DDL.DataTextField = dataTextfield;
DDL.DataValueField=dataValuefield;
DDL.DataBind();
}
_cn.Close();
}
and this is ddlTrade_SelectedIndexChanged event
protected void DDLtrade_SIC(object sender, EventArgs e)
{
BindTrade();
}
private void BindTrade()
{
DDLclass.Items.Clear();
DDLclass.Items.Add(new ListItem("click here", ""));
DDLclass.AppendDataBoundItems = true;
SqlCommand _cmd = new SqlCommand("tardeclass1", _cn);
_cmd.CommandType = CommandType.StoredProcedure;
_cmd.Parameters.AddWithValue("@Trade", DDLtrade.SelectedItem.Value);
_cn.Open();
DDLclass.DataSource = _cmd.ExecuteReader();
DDLclass.DataTextField = "Name";
DDLclass.DataValueField = "ID";
DDLclass.DataBind();
_cn.Close();
}
and SP
ALTER procedure [dbo].[tardeclass1]
@Trade nvarchar(30)
as
begin
select ID,Name
from tradeclass
where TradeN=@Trade or @Trade='0'
end
NOW my problem is that when I select Item from ddlTrade it didn't show any thing in ddlTradeClass but when I delete this code
DDL.DataValueField=dataValuefield;
from BindDropDownList Metod and change like below
protected void BindDropDownList(DropDownList DDL, string spname, string dataTextfield)
{
SqlCommand _cmd = new SqlCommand(spname, _cn);
_cmd.CommandType = CommandType.StoredProcedure;
_cn.Open();
SqlDataReader _dr = _cmd.ExecuteReader();
if (_dr.HasRows)
{
DDL.DataSource = _dr;
DDL.DataTextField = dataTextfield;
// DDL.DataValueField=dataValuefield;
DDL.DataBind();
}
_cn.Close();
}
It worked correctly I mean when I click Item from ddlTrade in ddlTradeClass show data from TradeClass Table
so here what should I do ?
I need DataValueField in ddlbinding
Why this problem happen?
BestRegards