项目中遇到的问题:
1.c#开始学习中,创建一个二维数组都费劲,使用java的那种形式会出错。
多维数组:c#中无论是几维数组只用一个中括号[]来表示。
//二维数组:
int[,] array=new int[3,2];
//初始化:
int[,] arr = new int[2,3]{{1,2,3},{4,5,6}};
与java总类似的int[][]两个中括号的定义是交错数组,相当于一个一维数组的嵌入
//交错数组:后一个中括号中不能有值
int[][] arr = new int[2][];
//初始化
int[][] arr = new int[2][]{new int{1,3,2},new int{4,5,6}};
对于数组也可以使用循环赋值初始化。
2.项目中前端需要显示数据库中特定值考前的下拉菜单
使用sql语句:
将数据表中的的特定语句放在最前面:
方式一:
select * from [dbo].[CTS_DUTIES] where [DUTIES_ID] ='特定值'
union all
select * from [dbo].[CTS_DUTIES] where [DUTIES_ID] <>'特定值'
方式二:
select case when [DUTIES_ID] ='特定值' then 0 else 1 end flag,* FROM [dbo].[CTS_DUTIES]
ORDER BY flag asc
3.在一个下拉列表中选择的是一个树级菜单
使用的控件:
在ASPxDropDownEdit控件中嵌入一个TreeList控件。
<!--js程序-->
<script type="text/javascript">
function ss() {
var key = treeListUnit.GetFocusedNodeKey();
Panel_call.PerformCallback(key);
ASPxItem.HideDropDown();
}
</script>
<!--htmlbody中程序-->
<td>
<dx:ASPxCallbackPanel ID="ASPxCallbackPanel_call" ClientInstanceName="Panel_call" runat="server" Width="200px" OnCallback="ASPxCallbackPanel_call_Callback">
<PanelCollection>
<dx:PanelContent>
<dx:ASPxDropDownEdit ID="dropdown_branch" Theme="Moderno" runat="server" Width="170px" EnableAnimation="False"
ClientInstanceName="ASPxItem" OnPreRender="ASPxDropDownEdit2_PreRender">
<DropDownWindowTemplate>
<div style="height: 300px; width: 270px; overflow: auto">
<dx:ASPxTreeList ID="ASPxTreeList1" runat="server" AutoGenerateColumns="False" Theme="Aqua"
ClientInstanceName="treeListUnit"
KeyFieldName="MenuId" ParentFieldName="UpperMenuId">
<SettingsText LoadingPanelText="正在加载..." />
<Styles>
<AlternatingNode Enabled="True" CssClass="GridViewAlBgColor" />
<Header HorizontalAlign="Center" />
<%--#d8d8d8--%>
<FocusedNode BackColor="#d8d8d8" ForeColor="teal"></FocusedNode>
</Styles>
<Columns>
<dx:TreeListTextColumn Caption="组织架构名称" FieldName="MenuName" VisibleIndex="0">
<CellStyle HorizontalAlign="Left">
</CellStyle>
<EditFormSettings VisibleIndex="0" Visible="True" />
</dx:TreeListTextColumn>
</Columns>
<SettingsLoadingPanel Text="正在加载..." />
<Settings SuppressOuterGridLines="True" GridLines="Horizontal" />
<SettingsBehavior AllowFocusedNode="True" AutoExpandAllNodes="true" ExpandCollapseAction="NodeDblClick" />
<ClientSideEvents NodeDblClick="function(s, e) {
ss();
}" />
<Border BorderStyle="Solid" />
</dx:ASPxTreeList>
</div>
<div>
<dx:ASPxHiddenField ID="ASPxHiddenField_orgname" ClientInstanceName="hid_orgname" runat="server"></dx:ASPxHiddenField>
</div>
</DropDownWindowTemplate>
</dx:ASPxDropDownEdit>
</dx:PanelContent>
</PanelCollection>
</dx:ASPxCallbackPanel>
</td>
HiddenField的作用是将数据库中的ID放置在隐藏域,在文本框中显示名称。
//treelist的获取与绑定
DataTable dt = comm.SELECT_DATA(string.Format("select * from POWER_CONSTRUC_TPERSON where SERIAL_ID='{0}'", edit.Split(',')[0])).Tables[0];
ASPxTreeList treeList = (ASPxTreeList)dropdown_branch.FindControl("ASPxTreeList1");
treeList.DataSource = org_manager.GetZT_ORGANIZATION();
treeList.DataBind();
//隐藏域获取以及绑定
ASPxHiddenField hidden_org = (ASPxHiddenField)dropdown_branch.FindControl("ASPxHiddenField_orgname");
//单位信息hidden_org
person.UNIT_CODE = hidden_org.Get("hidden_org").ToString();