页面显示:
页面代码:
<tr>
<td align="right" width="15%">
<span class="mustEnter">*</span>栏目:
</td>
<td width="65%">
<asp:DropDownList ID="ddl_ColumnId" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddl_ColumnId_SelectedIndexChanged">
</asp:DropDownList>
</td>
<td id="td1" align="left" runat="server">
</td>
</tr>
<tr>
<td align="right" width="15%">
<span class="mustEnter">*</span>子栏目:
</td>
<td width="65%">
<asp:DropDownList ID="ddl_SColumnId" runat="server">
</asp:DropDownList>
</td>
<td id="td11" align="left" runat="server">
</td>
</tr>
后台代码:
1.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
try
{
ViewState["ColumnID"] = Request.QueryString["ColumnID"].ToString(); //获取ColumnID
ViewState["SColumnID"] = Request.QueryString["SColumnID"].ToString();
}
catch
{
ViewState["ColumnID"] = "-1";
ViewState["SColumnID"] = "-1";
}
BindMenu();
ddl_ColumnId.SelectedValue = ViewState["ColumnID"].ToString();
ddl_ColumnId_SelectedIndexChanged(null, null);
ddl_SColumnId.SelectedValue = ViewState["SColumnID"].ToString();
}
}
private void BindMenu()
{
YFOA.MenuManagerManage objManage = new YFOA.MenuManagerManage();
DataTable objDT = new DataTable();
if (objManage.GetMenu(false, out objDT, out strErr) == 1)
{
DataRow DR = objDT.NewRow();
DR["ColumnName"] = "请选择上级栏目";
DR["ColumnId"] = "-1";
objDT.Rows.InsertAt(DR, 0);
this.ddl_ColumnId.DataSource = objDT;
ddl_ColumnId.DataValueField = "ColumnId";
ddl_ColumnId.DataTextField = "ColumnName";
ddl_ColumnId.DataBind();
}
else
{
AlertInfo(strErr);
}
}
//选择栏目内容的时候,子栏目绑定相应数据
protected void ddl_ColumnId_SelectedIndexChanged(object sender, EventArgs e)
{
DataTable objDT = new DataTable();
if (objManage.GetSumMenuByMenuID(int.Parse(ddl_ColumnId.SelectedValue), out objDT, out strErr) == 1)
{
DataRow DR = objDT.NewRow();
DR["ColumnId"] = "-1";
DR["SColumnName"] = "请选择栏目";
objDT.Rows.InsertAt(DR, 0);
this.ddl_SColumnId.DataSource = objDT;
ddl_SColumnId.DataValueField = "ColumnId";
ddl_SColumnId.DataTextField = "SColumnName";
ddl_SColumnId.DataBind();
}
else
{
AlertInfo(strErr);
}
}
2
public int GetMenu(bool IsState, out DataTable objDataTable, out string strErr)
{
strErr = "";
objDataTable = new DataTable();
StringBuilder strSQL = new StringBuilder();
strSQL.Append("select ColumnId, ColumnName from TMenuManager");
if (IsState == true)
{
strSQL.Append(" where IStrue='1'");
}
try
{
objDataTable = DBAccess.GetDataSetFromExcuteCommand(strSQL.ToString(), null).Tables[0];
return 1;
}
catch (Exception ex)
{
strErr = ex.Message;
strErr = strErr.Replace("'", "*");
strErr = strErr.Replace("\r", "\\r");
strErr = strErr.Replace("\n", "\\n");
return 0;
}
}
/// <summary>
/// 获得子栏目
/// </summary>
/// <param name="ColumnId">栏目 ID</param>
/// <param name="objDataTable"></param>
/// <param name="strErr">返回错误信息</param>
/// <returns>返回非0表示执行成功,返回0表示执行不成功,错误信息在strErr中体现</returns>
public int GetSumMenuByMenuID(int ColumnId, out DataTable objDataTable, out string strErr)
{
strErr = "";
objDataTable = new DataTable();
StringBuilder strSQL = new StringBuilder();
strSQL.Append("select ColumnId, SColumnName from TSubmenuManager where IStrue='1' AND SColumnId=" + ColumnId + " order by Number");
try
{
objDataTable = DBAccess.GetDataSetFromExcuteCommand(strSQL.ToString(), null).Tables[0];
return 1;
}
catch (Exception ex)
{
strErr = ex.Message;
strErr = strErr.Replace("'", "*");
strErr = strErr.Replace("\r", "\\r");
strErr = strErr.Replace("\n", "\\n");
return 0;
}
}