0
我的项目中有两个dropdownlist
。我的整个项目使用一个connectionstring
但是对于这两个下拉列表,我想使用不同的connectionstring
使用不同的连接字符串级联下拉列表
我已经在我的web.config
文件中定义了所有连接字符串。下面是代码: -
<td style="width: 15%" class="field">
<select id="cmbRecdDept" runat="server" style="width: 25%" onchange="FunEmpFillDept()">
<option value="0">--Select--</option>
</select>
</td>
<td style="width: 15%" class="field">
<select id="cmbRecdEmp" runat="server" style="width: 25%" onchange="FunSelEmpRecd()">
<option value="0">--Select--</option>
</select>
</td>
和代码背后,是
ObjPriDT = ObjPriDal.ExecuteDataTable("select distinct master_mkey, Type_Desc from type_mst_a a join emp_mst b on a. master_mkey=b.department_mkey where b.status in ('A','S','R') order by Type_Desc");
cmbRecdDept.DataSource = ObjPriDT;
cmbRecdDept.DataTextField = "Type_Desc";
cmbRecdDept.DataValueField = "master_mkey";
cmbRecdDept.DataBind();
cmbRecdDept.Items.Insert(0, new ListItem("---Select---", "0"));
和我结合第二第一个列表,其代码的onchange
下面是: -
function FunEmpFillDept() {
document.getElementById('cmbRecdEmp').innerHTML = "";
var ObjPriOption = document.createElement("Option");
ObjPriOption.text = "ALL";
ObjPriOption.value = "0";
//document.getElementById('txtEmpID').value="0";
document.getElementById('cmbRecdEmp').add(ObjPriOption);
StrPriFnName = "FunFillEmp(" + document.getElementById('cmbRecdDept').value + ")";
var ObjPriXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
ObjPriXMLHTTP.open("GET", "FrmInwardXMLHTTP.aspx?para=" + StrPriFnName, false);
ObjPriXMLHTTP.send("");
if (ObjPriXMLHTTP.responseText != "") {
StrPriRow = ObjPriXMLHTTP.responseText.split('|');
for (IntPriI = 0; IntPriI < StrPriRow.length - 1; IntPriI++) {
StrPriCol = StrPriRow[IntPriI].split('~');
var ObjPriOption = document.createElement("Option");
ObjPriOption.text = StrPriCol[1];
ObjPriOption.value = StrPriCol[0];
document.getElementById('cmbRecdEmp').add(ObjPriOption);
}
}
}
其功能FunFillEmp
低于
public static string FunFillEmp(object[] args)
{
string StrPriReturn = "";
DataAccessLayer ObjPriDt = new DataAccessLayer();
DataTable dt = new DataTable();
dt = ObjPriDt.ExecuteDataTable("select mkey,Emp_Name,emp_card_no from emp_mst where department_mkey=" + args[0].ToString() + " and status in ('A','S','R') order by 2");
if (dt.Rows.Count > 0)
{
for (int IntpriI = 0; IntpriI < dt.Rows.Count; IntpriI++)
{
StrPriReturn += dt.Rows[IntpriI][0].ToString() + "~" + dt.Rows[IntpriI][1].ToString() + "~" + dt.Rows[IntpriI][2].ToString() + "|";
}
}
return StrPriReturn;
}
如何使用不同的connectionstring
这两个下拉列表
UPDATE
我dataAccesslayer代码
public DataAccessLayer(string connectionstring, Providers provider)
{
strConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
switch (provider)
{
case Providers.SqlServer:
objFactory = SqlClientFactory.Instance;
break;
case Providers.OleDb:
objFactory = OleDbFactory.Instance;
break;
case Providers.Oracle:
objFactory = OracleClientFactory.Instance;
break;
case Providers.ODBC:
objFactory = OdbcFactory.Instance;
break;
case Providers.ConfigDefined:
string providername = ConfigurationManager.ConnectionStrings["ConnectionString"].ProviderName;
switch (providername)
{
case "System.Data.SqlClient":
objFactory = SqlClientFactory.Instance;
break;
case "System.Data.OleDb":
objFactory = OleDbFactory.Instance;
break;
case "System.Data.OracleClient":
objFactory = OracleClientFactory.Instance;
break;
case "System.Data.Odbc":
objFactory = OdbcFactory.Instance;
break;
}
break;
}
objConnection = objFactory.CreateConnection();
objCommand = objFactory.CreateCommand();
objConnection.ConnectionString = strConnectionString;
objCommand.Connection = objConnection;
}
这么多的信息是不够的以适应答案。好心地显示一些代码以获得更多理解。如果您有任何疑问,请首先发表评论并将其清除 – BNN
post ur DataAccessLayer class code –
检查更新的问题 – BNN