实现如图效果
选择的时候选择值和描述。
存储的时候只存值
并接代码
public void Show_Terminal()
{
TVTerminal.Nodes.Clear();
exeRes = controller.GetStationInfo(combFactory.Text);
if (!exeRes.Status)
{
MessageBox.Show(exeRes.Message);
return;
}
dtTemp = (DataTable)exeRes.Anything;
//string sPreLineType = "";
string sPreLine = "";
string sPreStage = "";
string sPreStationType = "";
for (int i = 0; i <= dtTemp.Rows.Count - 1; i++)
{
string Site = dtTemp.Rows[i]["SITE"].ToString();
string sLine = dtTemp.Rows[i]["LINE"].ToString();
string sStage = dtTemp.Rows[i]["STAGE"].ToString();
string sStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
string sStation = dtTemp.Rows[i]["STATION_NAME"].ToString()+" || "+ dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
//if (sPreLineType!= sLineType)
//{
// TVTerminal.Nodes.Add(sLineType);
// int iNodeCount = TVTerminal.Nodes.Count - 1;
// TVTerminal.Nodes[iNodeCount].ImageIndex = 0;
// TVTerminal.Nodes[iNodeCount].Nodes.Add(sLine);
// TVTerminal.Nodes[iNodeCount].LastNode.ImageIndex = 1;
// TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStage);
// TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 2;
// TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStationType);
// TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 3;
// TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.Nodes.Add(sStation);
// TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.LastNode.ImageIndex = 4;
//}
//else
if (sPreLine != sLine)
{
TVTerminal.Nodes.Add(sLine);
int iNodeCount = TVTerminal.Nodes.Count - 1;
TVTerminal.Nodes[iNodeCount].ImageIndex = 0;
TVTerminal.Nodes[iNodeCount].Nodes.Add(sStage);
TVTerminal.Nodes[iNodeCount].LastNode.ImageIndex = 1;
TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 2;
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 3;
}
else if (sPreStage != sStage)
{
int iNodeCount = TVTerminal.Nodes.Count - 1;
TVTerminal.Nodes[iNodeCount].Nodes.Add(sStage);
TVTerminal.Nodes[iNodeCount].ImageIndex = 2;
TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 3;
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
}
else if (sPreStationType != sStationType)
{
int iNodeCount = TVTerminal.Nodes.Count - 1;
TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 3;
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
}
else
{
int iNodeCount = TVTerminal.Nodes.Count - 1;
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
}
//sPreLineType = dtTemp.Rows[i]["LINE_TYPE"].ToString();
sPreLine = dtTemp.Rows[i]["LINE"].ToString();
sPreStage = dtTemp.Rows[i]["STAGE"].ToString();
sPreStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString(); ;
//if (g_sTerminalID == dtTemp.Rows[i]["TERMINAL_ID"].ToString())
//{
// TVTerminal.SelectedNode = TVTerminal.Nodes[TVTerminal.Nodes.Count - 1].LastNode.LastNode.LastNode;
// TVTerminal.Focus();
//}
}
}
并接重要代码
string sStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
string sStation = dtTemp.Rows[i]["STATION_NAME"].ToString()+" || "+ dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
分割取值代码
private void TVTerminal_AfterSelect(object sender, TreeViewEventArgs e)
{
TVTerminal.SelectedNode.SelectedImageIndex = TVTerminal.SelectedNode.ImageIndex;
//lblLineTypeName.Text = "";
lblLineName.Text = "";
lblStageName.Text = "";
lblStationTypeName.Text = "";
lblStationName.Text = "";
if (TVTerminal.SelectedNode.Level != 3)
return;
//lblLineTypeName.Text = TVTerminal.SelectedNode.Parent.Parent.Parent.Parent.Text;
//baseInfo.LineType = lblLineTypeName.Text;
lblLineName.Text = TVTerminal.SelectedNode.Parent.Parent.Parent.Text;
baseInfo.LineName = lblLineName.Text;
lblStageName.Text = TVTerminal.SelectedNode.Parent.Parent.Text;
baseInfo.StageName = lblStageName.Text;
lblStationTypeName.Text = TVTerminal.SelectedNode.Parent.Text;
// Add by shinecao on 2021/3/19
lblStationTypeName.Text = lblStationTypeName.Text.Substring(0, lblStationTypeName.Text.IndexOf(" ||"));
baseInfo.StationType = lblStationTypeName.Text;
lblStationName.Text = TVTerminal.SelectedNode.Text;
// Add by kero hu on 2021/3/16
lblStationName.Text = lblStationName.Text.Substring(0, lblStationName.Text.IndexOf(" ||"));
baseInfo.StationName = lblStationName.Text;
//exeRes = controller.GetStationControl(baseInfo.StationName);
//if (!exeRes.Status)
//{
// MessageBox.Show(exeRes.Message);
//}
}
分割重要代码
lblStationTypeName.Text = TVTerminal.SelectedNode.Parent.Text;
// Add by shinecao on 2021/3/19
lblStationTypeName.Text = lblStationTypeName.Text.Substring(0, lblStationTypeName.Text.IndexOf(" ||"));
baseInfo.StationType = lblStationTypeName.Text;
实现值加描述显示
private void cobLine_SelectedIndexChanged(object sender, EventArgs e)
{
cobStation.Items.Clear();
if (cobLine.SelectedIndex > -1 && !string.IsNullOrWhiteSpace(cobLine.Text))
{
string line = cobLine.Text.Trim();
DataTable stationDT = conn.GetPostStationByLine(line);
if (stationDT.Rows.Count > 0)
{
//foreach (DataRow item in stationDT.Rows)
//{
// cobStation.Items.Add(item[0]);
//}
for (int i = 0; i < stationDT.Rows.Count; i++)
{
//cbxShop.Items.Add(dtTemp.Rows[i][0].ToString());
cobStation.Items.Add(new Metadata(stationDT.Rows[i][1].ToString(), stationDT.Rows[i][0].ToString()));
}
}
}
}
public DataTable GetPostStationByLine(string line)
{
return dal.GetPostStationByLine(line);
}
DAL
public DataTable GetPostStationByLine(string line)
{
string sql = string.Format("SELECT A.STATION_TYPE,B.STATION_TYPE|| ' '||B.STATION_TYPE_DESC AS STATION_TYPE_DESC FROM IMES.M_POST_LINE_STATION A left join IMES.M_STATION_TYPE B " +
"ON B.STATION_TYPE = A.STATION_TYPE WHERE A.ENABLED = 'Y' AND A.LINE ='{0}'", line);
return utility.Query(sql);
}
SQL
SELECT A.STATION_TYPE,B.STATION_TYPE|| ' '||B.STATION_TYPE_DESC AS STATION_TYPE_DESC FROM IMES.M_POST_LINE_STATION A left join IMES.M_STATION_TYPE B
ON B.STATION_TYPE = A.STATION_TYPE WHERE A.ENABLED = 'Y' AND A.LINE ='Miniled-Line01'