PDA

View Full Version : مبتدی: آیا این روش بایند کردن dropDownList داخل گیرید درسته؟



zhr.rezae66i
یک شنبه 29 بهمن 1391, 17:54 عصر
سلام
ببینید این کد زیر برای من جواب میده اما حس میکنم روال عادی این نباید باشه
میشه راهنماییم کنید این کار رو چطور درست انجام بدم

یک گیرید رو اطلاعات سطر هاشو داخل تابع LoadData بایند کردم
فوتر هارو داخل تابع RowDataBind
و dropDown -e child که باید بر اساس پدرش داده هاش بایند بشه رو در یک تابع بنام ddChildPiece_Bind نوشتم
که اونو در رخداد selectedIndexChange صدا زدم به اینصورت:

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadData();
}

}
DataSet ds = new DataSet();
public void LoadData()
{
SqlConnection sc = new SqlConnection(@"");
SqlCommand cmd = new SqlCommand("select * from tblOrders",sc);
sc.Open();
SqlDataReader dr= cmd.ExecuteReader();
GridView1.DataSource = dr;
GridView1.DataBind();
dr.Close();
sc.Close();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Footer)
{
DropDownList ddOrgan =(DropDownList) e.Row.FindControl("DropDownOrganFooter");
DropDownList ddPiece = (DropDownList)e.Row.FindControl("DropDownPicecFooter");
if (ddOrgan != null)
{
SqlConnection sc = new SqlConnection(@"");
SqlCommand cmd = new SqlCommand("select * from tblOrgan", sc);
sc.Open();
SqlDataReader dr = cmd.ExecuteReader();
ddOrgan.DataSource = dr;
ddOrgan.DataValueField = "intID";
ddOrgan.DataTextField = "strOrganName";
ddOrgan.DataBind();
dr.Close();
sc.Close();
}
if (ddPiece != null)
{
SqlConnection sc = new SqlConnection(@"");
SqlCommand cmd = new SqlCommand("select * from tblParentPiece", sc);
sc.Open();
SqlDataReader dr = cmd.ExecuteReader();
ddPiece.DataSource = dr;
ddPiece.DataValueField = "intID";
ddPiece.DataTextField = "strPieceName";
ddPiece.DataBind();
dr.Close();
sc.Close();
}


}
}

public void ddChildPiece_Bind(string id)
{
SqlConnection sc = new SqlConnection(@"");
SqlCommand cmd = new SqlCommand("select * from tblChildPiece where intID="+id, sc);
sc.Open();
SqlDataReader dr = cmd.ExecuteReader();
DropDownList Child = (DropDownList)GridView1.FooterRow.FindControl("DropDownModelPieceFooter");
Child.DataSource = dr;
Child.DataValueField = "intPrivateID";
Child.DataTextField = "strSubPieceName";
Child.DataBind();
dr.Close();
sc.Close();
}

protected void DropDown_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ParentPiece = (DropDownList)sender;
string id = ParentPiece.SelectedItem.Value;
ddChildPiece_Bind(id);
}
}