通过读取数据库内的相应记录值,更改页面dropdownlist的当前选项页面组件布局ddl_kind1 ddl_field1 ddl_oper1 生成控件 ddl_next1
ddl_kind2 ddl_field2 ddl_oper2 生成控件 ddl_next2
ddl_kind3 ddl_field3 ddl_oper3 生成控件 ddl_next3
ddl_kind4 ddl_field4 ddl_oper4 生成控件 ddl_next4
ddl_kind5 ddl_field5 ddl_oper5 生成控件 代码:(private void changeddl())
string sql_cmd = "select info_id,field_code,operation,val,logical_operate,seq from t_query_condition where query_id=" + query_id;
SqlDataReader myreader = SqlHelper.ExecuteReader(sql_cmd);int j =1;
while (myreader.Read())
{
string controlname = "ddl_kind"+j.ToString();
ListItem item_temp = ((DropDownList)(this.FindControl(controlname))).Items.FindByValue(myreader.GetValue(0).ToString());
//根据值查找页面ddl控件的项
int index = ((DropDownList)(this.FindControl(controlname))).Items.IndexOf(item_temp);
//获取该项在控件的位置
((DropDownList)(this.FindControl(controlname))).SelectedIndex = index;
//在页面查找ddl_kind*控件,设置该控件的当前选项为该位置
getfrommainddl(myreader.GetValue(0).ToString(),(DropDownList)(this.FindControl("ddl_field"+j.ToString())));
//根扰ddl_kind*选项生成ddl_field控件项 controlname = "ddl_field"+j.ToString();
item_temp = ((DropDownList)(this.FindControl(controlname))).Items.FindByValue(myreader.GetValue(1).ToString());
index = ((DropDownList)(this.FindControl(controlname))).Items.IndexOf(item_temp);
((DropDownList)(this.FindControl(controlname))).SelectedIndex = index; controlname = "ddl_oper"+j.ToString();
item_temp = ((DropDownList)(this.FindControl(controlname))).Items.FindByValue(myreader.GetValue(2).ToString());
index = ((DropDownList)(this.FindControl(controlname))).Items.IndexOf(item_temp);
((DropDownList)(this.FindControl(controlname))).SelectedIndex = index;
if (j<=4)
{
controlname = "ddl_next"+j.ToString();
item_temp = ((DropDownList)(this.FindControl(controlname))).Items.FindByValue(myreader.GetValue(4).ToString());
index = ((DropDownList)(this.FindControl(controlname))).Items.IndexOf(item_temp);
((DropDownList)(this.FindControl(controlname))).SelectedIndex = index;
}
j++;
}
myreader.Close();for (int n = 1;n < 6;n++)
{
m.rw(((DropDownList)(this.FindControl("ddl_kind"+Convert.ToString(n)))).SelectedItem.Text);
}问题:页面所有ddl_kind的当前选项为myreader循环后最一条记录对应的值,如果改为if(myreader())运行时,刚所有ddl_kind*控件当前项均为第一条记录所对应的项
ddl_kind2 ddl_field2 ddl_oper2 生成控件 ddl_next2
ddl_kind3 ddl_field3 ddl_oper3 生成控件 ddl_next3
ddl_kind4 ddl_field4 ddl_oper4 生成控件 ddl_next4
ddl_kind5 ddl_field5 ddl_oper5 生成控件 代码:(private void changeddl())
string sql_cmd = "select info_id,field_code,operation,val,logical_operate,seq from t_query_condition where query_id=" + query_id;
SqlDataReader myreader = SqlHelper.ExecuteReader(sql_cmd);int j =1;
while (myreader.Read())
{
string controlname = "ddl_kind"+j.ToString();
ListItem item_temp = ((DropDownList)(this.FindControl(controlname))).Items.FindByValue(myreader.GetValue(0).ToString());
//根据值查找页面ddl控件的项
int index = ((DropDownList)(this.FindControl(controlname))).Items.IndexOf(item_temp);
//获取该项在控件的位置
((DropDownList)(this.FindControl(controlname))).SelectedIndex = index;
//在页面查找ddl_kind*控件,设置该控件的当前选项为该位置
getfrommainddl(myreader.GetValue(0).ToString(),(DropDownList)(this.FindControl("ddl_field"+j.ToString())));
//根扰ddl_kind*选项生成ddl_field控件项 controlname = "ddl_field"+j.ToString();
item_temp = ((DropDownList)(this.FindControl(controlname))).Items.FindByValue(myreader.GetValue(1).ToString());
index = ((DropDownList)(this.FindControl(controlname))).Items.IndexOf(item_temp);
((DropDownList)(this.FindControl(controlname))).SelectedIndex = index; controlname = "ddl_oper"+j.ToString();
item_temp = ((DropDownList)(this.FindControl(controlname))).Items.FindByValue(myreader.GetValue(2).ToString());
index = ((DropDownList)(this.FindControl(controlname))).Items.IndexOf(item_temp);
((DropDownList)(this.FindControl(controlname))).SelectedIndex = index;
if (j<=4)
{
controlname = "ddl_next"+j.ToString();
item_temp = ((DropDownList)(this.FindControl(controlname))).Items.FindByValue(myreader.GetValue(4).ToString());
index = ((DropDownList)(this.FindControl(controlname))).Items.IndexOf(item_temp);
((DropDownList)(this.FindControl(controlname))).SelectedIndex = index;
}
j++;
}
myreader.Close();for (int n = 1;n < 6;n++)
{
m.rw(((DropDownList)(this.FindControl("ddl_kind"+Convert.ToString(n)))).SelectedItem.Text);
}问题:页面所有ddl_kind的当前选项为myreader循环后最一条记录对应的值,如果改为if(myreader())运行时,刚所有ddl_kind*控件当前项均为第一条记录所对应的项
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货