Nov 10, 2013, 12:43 AM
get Dynimic gridpane's value from code behid
I Create all contrls in code behid ,How can I get values of the gridpanle
private void SftCreateGui1(string strPageUrl,Page pgCtrl, List<SftGuiStruMain> lstSftGuiM, List<SftGuiStruDetail> lstSftGuiD,Ext.Net.Panel ctrlPanelMain,string strUserNum)
{
try
{
int nGuiAreCounts = 0, nGuiAreaNum = 0, nRedAreNum = 0, nFirstPosX = 0, nFirstPosY = 0, nCtrlHorDist = 0, nctrlVerDist = 0, nCtrlPoX = 0,nCtrlPoY =0,nCtrlHeightRow = 0;
nGuiAreCounts = lstGuiMStru.Count;//界面区域数
int nCtrlsRow = 0,nIfOthRow =0,nCtrlColumn = 0,nLastRowsCtrlX= 0,nCtrlAreNum = 0,nCtrlAreVerDis=0;
int nCtrlCounts = lstSftGuiD.Count;
if (nCtrlCounts == 0) return;
sftGuiToolbar = new Ext.Net.Toolbar();
sftGuiToolbar.ID = "gSoftToolBar";
ctrlPanelMain.Layout = "absolute";
ctrlPanelMain.X = 0;
ctrlPanelMain.Y = 0;
ctrlPanelMain.Width = 1600;
ctrlPanelMain.Height = 1000;
ctrlPanelMain.Border = false;
ctrlPanelMain.BodyBorder = 0;
ctrlPanelMain.Items.Add(sftGuiToolbar);
nGuiAreaNum = lstSftGuiD[0]._nUidARN;//区域号
nFirstPosX = lstGuiMStru[nRedAreNum]._nUimFCX;//第一控件的X坐标
nFirstPosY = lstGuiMStru[nRedAreNum]._nUimFCY;//第一控件的Y坐标
nctrlVerDist = lstGuiMStru[nRedAreNum]._nUimVDI;//控件间的垂直距离
#region 开始创建控件
for (int nCtrls = 0; nCtrls < nCtrlCounts; nCtrls++)
{
nIfOthRow = lstSftGuiD[nCtrls]._nUidOTL;//是否换另外一行
int nCtrlType = lstGuiDStru[nCtrls]._nUidCTY;//控件类型
nCtrlColumn = lstGuiDStru[nCtrls]._nUidCOL-1;//控件所在的列号
nCtrlAreNum = lstGuiDStru[nCtrls]._nUidARN;//所在区域号
if (nCtrlAreNum == 9)//是否交换区域,一定换行
{
nCtrlAreVerDis = lstGuiMStru[nRedAreNum]._nUimADI;//区域间的垂直间距
}
if(nCtrlsRow ==0)
{
nCtrlPoY = nFirstPosY+nctrlVerDist+16;
}
if (nIfOthRow == 1)//如果控制换行
{
nLastRowsCtrlX = nCtrlPoX;//一行最后一个控件的位置
nCtrlsRow++;
nCtrlPoX = nFirstPosX;
nCtrlPoY = nCtrlPoY + nCtrlHeightRow + nctrlVerDist;
if (nCtrlAreNum == 9)
{
nCtrlPoY += nCtrlAreVerDis;
nCtrlAreVerDis = 0;
}
nCtrlHorDist = 0;
}
if (nCtrlColumn == 1)
{
nCtrlHorDist = lstGuiMStru[nRedAreNum]._nUimHDI;
}
else if(nCtrlColumn == 2)
{
nCtrlHorDist = lstGuiMStru[nRedAreNum]._nUimSHD ;
}
else if (nCtrlColumn == 3)
{
nCtrlHorDist = lstGuiMStru[nRedAreNum]._nUimHDI + lstGuiMStru[nRedAreNum]._nUimSHD + lstGuiMStru[nRedAreNum]._nUimTHD;
}
else if (nCtrlColumn == 9)//把控件放在最后列时,的X坐标
{
nCtrlPoX = nLastRowsCtrlX - lstSftGuiD[nCtrls - 1]._nUidTLW;
}
if (nCtrlType == 1)//控件类型Button
{
Ext.Net.ToolbarSeparator sftTblSeptor = new ToolbarSeparator();
sftGuiToolbar.Items.Add(sftTblSeptor);
Ext.Net.Button sftGuiBtn = new Ext.Net.Button();
sftGuiBtn.ID = lstSftGuiD[nCtrls]._nUidFTY.ToString();
sftGuiBtn.Text = lstSftGuiD[nCtrls]._strUidCDS;
sftGuiBtn.StandOut = false ;//按钮凸出
sftGuiBtn.DirectEvents.Click.Event += btnCreate_DirectClick;
sftGuiBtn.DirectEvents.Click.Timeout = 900000000;
sftGuiBtn.X = nCtrlPoX;
sftGuiBtn.Y = nCtrlPoY;
if(lstSftGuiD[nCtrls]._nUidFTY ==1 || lstSftGuiD[nCtrls]._nUidFTY ==11)
{
sftGuiBtn.Icon = Ext.Net.Icon.Add;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 2 || lstSftGuiD[nCtrls]._nUidFTY == 12)
{
sftGuiBtn.Icon = Ext.Net.Icon.BasketEdit;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 3)//删除
{
sftGuiBtn.Icon = Ext.Net.Icon.Cross;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 4 )
{
sftGuiBtn.Icon = Ext.Net.Icon.PageSave;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 7)
{
sftGuiBtn.Icon = Ext.Net.Icon.ZoomIn;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 16)
{
sftGuiBtn.Icon = Ext.Net.Icon.Printer;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 5)
{
sftGuiBtn.Icon = Ext.Net.Icon.DatabaseRefresh;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 19)
{
sftGuiBtn.Icon = Ext.Net.Icon.UserHome;
}
sftGuiToolbar.Items.Add(sftGuiBtn);
}
else if (nCtrlType == 2)//控件类型Text
{
Ext.Net.Label sftLbl = new Ext.Net.Label();
sftLbl.ID = "lbl" + lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftLbl.Width = lstSftGuiD[nCtrls]._nUidTLW;
nCtrlPoX = nCtrlPoX + nCtrlHorDist;//计算控件位置X坐标的值
sftLbl.X = nCtrlPoX ;
sftLbl.Y = nCtrlPoY+3;
sftLbl.Text = lstSftGuiD[nCtrls]._strUidCDS;
ctrlPanelMain.Items.Add(sftLbl);
nCtrlPoX += lstSftGuiD[nCtrls]._nUidTLW;//变换X坐标
Ext.Net.TextField sftFldTxt = new TextField();
sftFldTxt.ID = lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftFldTxt.Width = lstSftGuiD[nCtrls]._nUidCLW;
sftFldTxt.Height = lstSftGuiD[nCtrls]._nUidCLH;
if (nCtrlHeightRow == 0)
{
nCtrlHeightRow = lstSftGuiD[nCtrls]._nUidCLH;
}
else
{
if (nCtrlHeightRow < lstSftGuiD[nCtrls]._nUidCLH)
{
nCtrlHeightRow = lstSftGuiD[nCtrls]._nUidCLH;
}
}
sftFldTxt.X = nCtrlPoX;
sftFldTxt.Y = nCtrlPoY;
int nBindEvent = lstSftGuiD[nCtrls]._nUidEVT;
if (nBindEvent == 1)//绑定TextField控件事件
{
sftFldTxt.DirectEvents.Blur.Event += ctrlTextField_LostFocus;
sftFldTxt.DirectEvents.Blur.Timeout = 900000000;
}
if (nBindEvent == 2)//绑定TextField控件事件
{
sftFldTxt.DirectEvents.Blur.Event += ctrlTextField_GetFocus;
sftFldTxt.DirectEvents.Blur.Timeout = 900000000;
}
ctrlPanelMain.Items.Add(sftFldTxt);
}
else if (nCtrlType == 3)//控件类型Combox
{
Ext.Net.Label sftLbl = new Ext.Net.Label();
sftLbl.ID = "lbl" + lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftLbl.Width = lstSftGuiD[nCtrls]._nUidTLW;
nCtrlPoX = nCtrlPoX + nCtrlHorDist;//计算控件位置X坐标的值
sftLbl.X = nCtrlPoX;
sftLbl.Y = nCtrlPoY+3;
sftLbl.Text = lstSftGuiD[nCtrls]._strUidCDS;
ctrlPanelMain.Items.Add(sftLbl);//添加控件到Panelk中
nCtrlPoX += lstSftGuiD[nCtrls]._nUidTLW;//变换X坐标
Ext.Net.ComboBox ctrlComBox = new ComboBox();
ctrlComBox.ID = lstSftGuiD[nCtrls]._strUidFNA.ToString();
ctrlComBox.X = nCtrlPoX;
ctrlComBox.Y = nCtrlPoY;
ctrlComBox.Width = lstSftGuiD[nCtrls]._nUidCLW;
ctrlComBox.Height = lstSftGuiD[nCtrls]._nUidCLH;
int nBindEvent = lstSftGuiD[nCtrls]._nUidEVT;
if (nBindEvent == 1)
{
ctrlComBox.DirectEvents.Blur.Event += ComBoxSelectChange;
ctrlComBox.DirectEvents.Blur.Timeout = 90000000;
}
if (nBindEvent == 2)
{
ctrlComBox.DirectEvents.Focus.Event += ComBoxSelectChange;
ctrlComBox.DirectEvents.Focus.Timeout = 90000000;
}
if (nBindEvent == 3)
{
ctrlComBox.DirectEvents.Select.Event += ComBoxSelectChange;
ctrlComBox.DirectEvents.Select.Timeout = 90000000;
}
ctrlPanelMain.Items.Add(ctrlComBox);
}
else if (nCtrlType == 4 || nCtrlType == 5 || nCtrlType == 6 )//控件类型日期类型控件
{
Ext.Net.Label sftLbl = new Ext.Net.Label();
sftLbl.ID = "lbl" + lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftLbl.Width = lstSftGuiD[nCtrls]._nUidTLW;
nCtrlPoX = nCtrlPoX + nCtrlHorDist;//计算控件位置X坐标的值
sftLbl.X = nCtrlPoX;
sftLbl.Y = nCtrlPoY+3;
sftLbl.Text = lstSftGuiD[nCtrls]._strUidCDS;
ctrlPanelMain.Items.Add(sftLbl);
nCtrlPoX += lstSftGuiD[nCtrls]._nUidTLW;//变换X坐标
Ext.Net.DateField sftDate = new DateField();
sftDate.ID = lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftDate.X = nCtrlPoX;
sftDate.Y = nCtrlPoY;
sftDate.Width = lstSftGuiD[nCtrls]._nUidCLW;
sftDate.Height = lstSftGuiD[nCtrls]._nUidCLH;
if (nCtrlType == 4)//年月日
{
sftDate.Format = "yyyyMMdd";
}
if (nCtrlType == 5)//年月
{
sftDate.Format = "yyyyMM";
}
if (nCtrlType == 6)//年
{
sftDate.Format = "yyyy";
}
ctrlPanelMain.Items.Add(sftDate);
}
else if (lstGuiDStru[nCtrls]._nUidCTY == 7)//控件类型TextArea
{
Ext.Net.Label sftLbl = new Ext.Net.Label();
sftLbl.ID = "lbl" + lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftLbl.Width = lstSftGuiD[nCtrls]._nUidTLW;
nCtrlPoX = nCtrlPoX + nCtrlHorDist;//计算控件位置X坐标的值
sftLbl.X = nCtrlPoX;
sftLbl.Y = nCtrlPoY + 3;
sftLbl.Text = lstSftGuiD[nCtrls]._strUidCDS;
ctrlPanelMain.Items.Add(sftLbl);
nCtrlPoX += lstSftGuiD[nCtrls]._nUidTLW;//变换X坐标
Ext.Net.TextArea sftTxtArea = new TextArea();
sftTxtArea.ID = lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftTxtArea.X = nCtrlPoX;
sftTxtArea.Y = nCtrlPoY;
sftTxtArea.Width = lstSftGuiD[nCtrls]._nUidCLW;
sftTxtArea.Height = lstSftGuiD[nCtrls]._nUidCLH;
if (nCtrlHeightRow == 0)
{
nCtrlHeightRow = lstSftGuiD[nCtrls]._nUidCLH;
}
else
{
if (nCtrlHeightRow < lstSftGuiD[nCtrls]._nUidCLH)
{
nCtrlHeightRow = lstSftGuiD[nCtrls]._nUidCLH;
}
}
ctrlPanelMain.Items.Add(sftTxtArea);
}
else if (lstGuiDStru[nCtrls]._nUidCTY == 9)//图片控件
{
Ext.Net.Image sftImage = new Image();
sftImage.ID = lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftImage.X = nCtrlPoX;
sftImage.Y = nCtrlPoY;
sftImage.Width = lstSftGuiD[nCtrls]._nUidCLW;
sftImage.Height = lstSftGuiD[nCtrls]._nUidCLH;
ctrlPanelMain.Items.Add(sftImage);
nCtrlPoX = nCtrlPoX + nCtrlHorDist;//计算控件位置X坐标的值
}
}
#endregion 开始创建控件
////===创建列表控件并做初始化====Start()====/////
Ext.Net.Store gSoftMainStore = new Store();
gSoftMainStore.ID = "gSoftMainStore";
Ext.Net.GridPanel gSoftGridPanel = new GridPanel();
gSoftGridPanel.ID ="gSoftGridPanel";
Ext.Net.CheckboxSelectionModel gSoftSelectMode = new CheckboxSelectionModel();
gSoftSelectMode.ID = "gSoftSelectMode";
gSoftSelectMode.Mode = SelectionMode.Single;
gSoftGridPanel.SelectionModel.Add(gSoftSelectMode) ;
gSoftGridPanel.DirectEvents.CellClick.Event += gSoftGridPanel_DirectClick;
gSoftGridPanel.DirectEvents.CellClick.Timeout = 900000000;
Ext.Net.Parameter gSoftExtraParams = new Ext.Net.Parameter ()
{
Name="Values",
Value = "Ext.encode(#{gSoftGridPanel}.getRowsValues({selec tedOnly:true}))",
Mode = ParameterMode.Value
};
gSoftGridPanel.DirectEvents.CellClick.ExtraParams. Add(gSoftExtraParams);
gSoftGridPanel.Y = nCtrlPoY +50;
gSoftGridPanel.Width = 1200;
gSoftGridPanel.Height = 500;
gSoftGridPanel.Store.Add(gSoftMainStore);
ctrlPanelMain.Items.Add(gSoftGridPanel);
SoftComDataManager softDataMan = new SoftComDataManager ();
softDataMan.SoftGetListDataset(strPageUrl, "SFTDB", "", gSoftGridPanel, gSoftMainStore, strUserNum);
public bool SoftGetListDataset(string strUrlId, string strBussDbNam, string strWhere, Ext.Net.GridPanel GridPanelMain, Ext.Net.Store StoreMain, string strUserId)
{
DataSet dsCom = null;
List<gSoftGuiManager.sftListStru> lstStru = new List<gSoftGuiManager.sftListStru>();
try
{
string strUrl = strUrlId.Substring(strUrlId.LastIndexOf("/") + 1);
if (strUrlId.IndexOf("?") != -1)
{
strUrl = strUrl.Substring(0, strUrl.LastIndexOf("?"));
}
#region 构造列表的数据sql
string strTableName = "", strInitListSql = "", strLstAreNum = "", strOrderBy = "";//数据表名
strComSql = "select * from SFTUIM where UIMURL='" + strUrl + "' and UIMLST ='1'";
dsCom = DbSQLOperator.Query(strComSql);
if (dsCom.Tables[0].Rows.Count != 1) return false;
strTableName = dsCom.Tables[0].Rows[0]["UIMDTN"].ToString();//表名
strLstAreNum = dsCom.Tables[0].Rows[0]["UIMAUN"].ToString();//区号
strOrderBy = dsCom.Tables[0].Rows[0]["UIMDOL"].ToString();//数据排序字段集合
if (strTableName.IndexOf(".DBO.") != -1)
{
strTableName = strBussDbNam + strTableName;
}
DataSet dsTemp = null;
strComSql = "select * from SFTRGD where UIDURL='" + strUrl + "' and UIDUSN ='" + strUserId + "' and UIDARN='" + strLstAreNum + "' and UIDLSI=1 order by UIDORD";
dsTemp = DbSQLOperator.Query(strComSql);
int nRows = dsTemp.Tables[0].Rows.Count;
if (nRows == 0)
{
strComSql = "select * from SFTUID where UIDURL='" + strUrl + "' and UIDARN='" + strLstAreNum + "' and UIDLSI=1 order by UIDORD";
dsTemp = DbSQLOperator.Query(strComSql);
nRows = dsTemp.Tables[0].Rows.Count;
}
for (int nRow = 0; nRow < nRows; nRow++)
{
string strFieldName = dsTemp.Tables[0].Rows[nRow]["UIDFNA"].ToString();
string strListTitle = dsTemp.Tables[0].Rows[nRow]["UIDCDS"].ToString();
int nListWidth = int.Parse(dsTemp.Tables[0].Rows[nRow]["UIDCWH"].ToString());
string strIsKey = dsTemp.Tables[0].Rows[nRow]["UIDKEY"].ToString();
string strEdit = dsTemp.Tables[0].Rows[nRow]["UIDEDT"].ToString();
if (string.IsNullOrEmpty(strEdit))
{
strEdit = "0";
}
string strLocked = dsTemp.Tables[0].Rows[nRow]["UIDLCK"].ToString();
if (string.IsNullOrEmpty(strLocked))
{
strLocked = "0";
}
if (nRow == 0)
{
strInitListSql = strFieldName;
}
else
{
strInitListSql += "," + strFieldName;
}
gSoftGuiManager.sftListStru lstStrue = new gSoftGuiManager.sftListStru(strFieldName, strListTitle, nListWidth, strIsKey, int.Parse(strEdit), int.Parse(strLocked));
lstStru.Add(lstStrue);
}
if (string.IsNullOrEmpty(strWhere))
{
strInitListSql = "select top(200) " + strInitListSql + " from " + strTableName;
}
else
{
strInitListSql = "select " + strInitListSql + " from " + strTableName;
}
if (!string.IsNullOrEmpty(strWhere))
{
strInitListSql += " where " + strWhere;
}
string strRightWhere = SoftMakeUserDataGradeRight(strUrl, strUserId);//构造数据条件
if (!string.IsNullOrEmpty(strRightWhere))
{
if (strInitListSql.IndexOf("where") > -1)
{
strInitListSql += " and " + strRightWhere;
}
else
{
strInitListSql += " where " + strRightWhere;
}
}
if (!string.IsNullOrEmpty(strOrderBy))
{
strInitListSql += " order by " + strOrderBy;
}
#endregion 构造列表数据Sql
#region 初始化数据列表
Ext.Net.Model gSoftModel = new Model();
StoreMain.Model.Add(gSoftModel);
if (StoreMain.Model[0].Fields.Count == 0)
{
ModelField ModeField;
int nColmns = lstStru.Count;
if (nColmns <= 0) return false;
for (int nColmn = 0; nColmn < nColmns; nColmn++)
{
ModeField = new ModelField();
StoreMain.Model[0].Fields.Add(ModeField);
StoreMain.Model[0].Fields[nColmn].Name = lstStru[nColmn]._strFieldName;
GridPanelMain.ColumnModel.Columns.Add(new ColumnBase[] {
new Column
{
Text = lstStru[nColmn]._strColumnTitle,
DataIndex =lstStru[nColmn]._strFieldName,
Width = lstStru[nColmn]._nWidth,
}
});
/*if (lstStru[nColmn]._nEdit == 1)
{
Ext.Net.TextField txtFld = new TextField();
column.SetEditor(txtFld);
column.Editor.Add(txtFld);
}
if (lstStru[nColmn]._nLocked == 1)//set Locked Column
{
column.Sortable = false;
column.Locked = true;
}
GridPanelMain.ColumnModel.Columns.Add(column);
}*/
}
GridPanelMain.ColumnLines = true;
}
dsCom = DbSQLOperator.Query(strInitListSql);
nRows = dsCom.Tables[0].Rows.Count;
StoreMain.DataSource = dsCom;
StoreMain.DataBind();
private void SftCreateGui1(string strPageUrl,Page pgCtrl, List<SftGuiStruMain> lstSftGuiM, List<SftGuiStruDetail> lstSftGuiD,Ext.Net.Panel ctrlPanelMain,string strUserNum)
{
try
{
int nGuiAreCounts = 0, nGuiAreaNum = 0, nRedAreNum = 0, nFirstPosX = 0, nFirstPosY = 0, nCtrlHorDist = 0, nctrlVerDist = 0, nCtrlPoX = 0,nCtrlPoY =0,nCtrlHeightRow = 0;
nGuiAreCounts = lstGuiMStru.Count;//界面区域数
int nCtrlsRow = 0,nIfOthRow =0,nCtrlColumn = 0,nLastRowsCtrlX= 0,nCtrlAreNum = 0,nCtrlAreVerDis=0;
int nCtrlCounts = lstSftGuiD.Count;
if (nCtrlCounts == 0) return;
sftGuiToolbar = new Ext.Net.Toolbar();
sftGuiToolbar.ID = "gSoftToolBar";
ctrlPanelMain.Layout = "absolute";
ctrlPanelMain.X = 0;
ctrlPanelMain.Y = 0;
ctrlPanelMain.Width = 1600;
ctrlPanelMain.Height = 1000;
ctrlPanelMain.Border = false;
ctrlPanelMain.BodyBorder = 0;
ctrlPanelMain.Items.Add(sftGuiToolbar);
nGuiAreaNum = lstSftGuiD[0]._nUidARN;//区域号
nFirstPosX = lstGuiMStru[nRedAreNum]._nUimFCX;//第一控件的X坐标
nFirstPosY = lstGuiMStru[nRedAreNum]._nUimFCY;//第一控件的Y坐标
nctrlVerDist = lstGuiMStru[nRedAreNum]._nUimVDI;//控件间的垂直距离
#region 开始创建控件
for (int nCtrls = 0; nCtrls < nCtrlCounts; nCtrls++)
{
nIfOthRow = lstSftGuiD[nCtrls]._nUidOTL;//是否换另外一行
int nCtrlType = lstGuiDStru[nCtrls]._nUidCTY;//控件类型
nCtrlColumn = lstGuiDStru[nCtrls]._nUidCOL-1;//控件所在的列号
nCtrlAreNum = lstGuiDStru[nCtrls]._nUidARN;//所在区域号
if (nCtrlAreNum == 9)//是否交换区域,一定换行
{
nCtrlAreVerDis = lstGuiMStru[nRedAreNum]._nUimADI;//区域间的垂直间距
}
if(nCtrlsRow ==0)
{
nCtrlPoY = nFirstPosY+nctrlVerDist+16;
}
if (nIfOthRow == 1)//如果控制换行
{
nLastRowsCtrlX = nCtrlPoX;//一行最后一个控件的位置
nCtrlsRow++;
nCtrlPoX = nFirstPosX;
nCtrlPoY = nCtrlPoY + nCtrlHeightRow + nctrlVerDist;
if (nCtrlAreNum == 9)
{
nCtrlPoY += nCtrlAreVerDis;
nCtrlAreVerDis = 0;
}
nCtrlHorDist = 0;
}
if (nCtrlColumn == 1)
{
nCtrlHorDist = lstGuiMStru[nRedAreNum]._nUimHDI;
}
else if(nCtrlColumn == 2)
{
nCtrlHorDist = lstGuiMStru[nRedAreNum]._nUimSHD ;
}
else if (nCtrlColumn == 3)
{
nCtrlHorDist = lstGuiMStru[nRedAreNum]._nUimHDI + lstGuiMStru[nRedAreNum]._nUimSHD + lstGuiMStru[nRedAreNum]._nUimTHD;
}
else if (nCtrlColumn == 9)//把控件放在最后列时,的X坐标
{
nCtrlPoX = nLastRowsCtrlX - lstSftGuiD[nCtrls - 1]._nUidTLW;
}
if (nCtrlType == 1)//控件类型Button
{
Ext.Net.ToolbarSeparator sftTblSeptor = new ToolbarSeparator();
sftGuiToolbar.Items.Add(sftTblSeptor);
Ext.Net.Button sftGuiBtn = new Ext.Net.Button();
sftGuiBtn.ID = lstSftGuiD[nCtrls]._nUidFTY.ToString();
sftGuiBtn.Text = lstSftGuiD[nCtrls]._strUidCDS;
sftGuiBtn.StandOut = false ;//按钮凸出
sftGuiBtn.DirectEvents.Click.Event += btnCreate_DirectClick;
sftGuiBtn.DirectEvents.Click.Timeout = 900000000;
sftGuiBtn.X = nCtrlPoX;
sftGuiBtn.Y = nCtrlPoY;
if(lstSftGuiD[nCtrls]._nUidFTY ==1 || lstSftGuiD[nCtrls]._nUidFTY ==11)
{
sftGuiBtn.Icon = Ext.Net.Icon.Add;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 2 || lstSftGuiD[nCtrls]._nUidFTY == 12)
{
sftGuiBtn.Icon = Ext.Net.Icon.BasketEdit;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 3)//删除
{
sftGuiBtn.Icon = Ext.Net.Icon.Cross;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 4 )
{
sftGuiBtn.Icon = Ext.Net.Icon.PageSave;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 7)
{
sftGuiBtn.Icon = Ext.Net.Icon.ZoomIn;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 16)
{
sftGuiBtn.Icon = Ext.Net.Icon.Printer;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 5)
{
sftGuiBtn.Icon = Ext.Net.Icon.DatabaseRefresh;
}
if (lstSftGuiD[nCtrls]._nUidFTY == 19)
{
sftGuiBtn.Icon = Ext.Net.Icon.UserHome;
}
sftGuiToolbar.Items.Add(sftGuiBtn);
}
else if (nCtrlType == 2)//控件类型Text
{
Ext.Net.Label sftLbl = new Ext.Net.Label();
sftLbl.ID = "lbl" + lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftLbl.Width = lstSftGuiD[nCtrls]._nUidTLW;
nCtrlPoX = nCtrlPoX + nCtrlHorDist;//计算控件位置X坐标的值
sftLbl.X = nCtrlPoX ;
sftLbl.Y = nCtrlPoY+3;
sftLbl.Text = lstSftGuiD[nCtrls]._strUidCDS;
ctrlPanelMain.Items.Add(sftLbl);
nCtrlPoX += lstSftGuiD[nCtrls]._nUidTLW;//变换X坐标
Ext.Net.TextField sftFldTxt = new TextField();
sftFldTxt.ID = lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftFldTxt.Width = lstSftGuiD[nCtrls]._nUidCLW;
sftFldTxt.Height = lstSftGuiD[nCtrls]._nUidCLH;
if (nCtrlHeightRow == 0)
{
nCtrlHeightRow = lstSftGuiD[nCtrls]._nUidCLH;
}
else
{
if (nCtrlHeightRow < lstSftGuiD[nCtrls]._nUidCLH)
{
nCtrlHeightRow = lstSftGuiD[nCtrls]._nUidCLH;
}
}
sftFldTxt.X = nCtrlPoX;
sftFldTxt.Y = nCtrlPoY;
int nBindEvent = lstSftGuiD[nCtrls]._nUidEVT;
if (nBindEvent == 1)//绑定TextField控件事件
{
sftFldTxt.DirectEvents.Blur.Event += ctrlTextField_LostFocus;
sftFldTxt.DirectEvents.Blur.Timeout = 900000000;
}
if (nBindEvent == 2)//绑定TextField控件事件
{
sftFldTxt.DirectEvents.Blur.Event += ctrlTextField_GetFocus;
sftFldTxt.DirectEvents.Blur.Timeout = 900000000;
}
ctrlPanelMain.Items.Add(sftFldTxt);
}
else if (nCtrlType == 3)//控件类型Combox
{
Ext.Net.Label sftLbl = new Ext.Net.Label();
sftLbl.ID = "lbl" + lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftLbl.Width = lstSftGuiD[nCtrls]._nUidTLW;
nCtrlPoX = nCtrlPoX + nCtrlHorDist;//计算控件位置X坐标的值
sftLbl.X = nCtrlPoX;
sftLbl.Y = nCtrlPoY+3;
sftLbl.Text = lstSftGuiD[nCtrls]._strUidCDS;
ctrlPanelMain.Items.Add(sftLbl);//添加控件到Panelk中
nCtrlPoX += lstSftGuiD[nCtrls]._nUidTLW;//变换X坐标
Ext.Net.ComboBox ctrlComBox = new ComboBox();
ctrlComBox.ID = lstSftGuiD[nCtrls]._strUidFNA.ToString();
ctrlComBox.X = nCtrlPoX;
ctrlComBox.Y = nCtrlPoY;
ctrlComBox.Width = lstSftGuiD[nCtrls]._nUidCLW;
ctrlComBox.Height = lstSftGuiD[nCtrls]._nUidCLH;
int nBindEvent = lstSftGuiD[nCtrls]._nUidEVT;
if (nBindEvent == 1)
{
ctrlComBox.DirectEvents.Blur.Event += ComBoxSelectChange;
ctrlComBox.DirectEvents.Blur.Timeout = 90000000;
}
if (nBindEvent == 2)
{
ctrlComBox.DirectEvents.Focus.Event += ComBoxSelectChange;
ctrlComBox.DirectEvents.Focus.Timeout = 90000000;
}
if (nBindEvent == 3)
{
ctrlComBox.DirectEvents.Select.Event += ComBoxSelectChange;
ctrlComBox.DirectEvents.Select.Timeout = 90000000;
}
ctrlPanelMain.Items.Add(ctrlComBox);
}
else if (nCtrlType == 4 || nCtrlType == 5 || nCtrlType == 6 )//控件类型日期类型控件
{
Ext.Net.Label sftLbl = new Ext.Net.Label();
sftLbl.ID = "lbl" + lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftLbl.Width = lstSftGuiD[nCtrls]._nUidTLW;
nCtrlPoX = nCtrlPoX + nCtrlHorDist;//计算控件位置X坐标的值
sftLbl.X = nCtrlPoX;
sftLbl.Y = nCtrlPoY+3;
sftLbl.Text = lstSftGuiD[nCtrls]._strUidCDS;
ctrlPanelMain.Items.Add(sftLbl);
nCtrlPoX += lstSftGuiD[nCtrls]._nUidTLW;//变换X坐标
Ext.Net.DateField sftDate = new DateField();
sftDate.ID = lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftDate.X = nCtrlPoX;
sftDate.Y = nCtrlPoY;
sftDate.Width = lstSftGuiD[nCtrls]._nUidCLW;
sftDate.Height = lstSftGuiD[nCtrls]._nUidCLH;
if (nCtrlType == 4)//年月日
{
sftDate.Format = "yyyyMMdd";
}
if (nCtrlType == 5)//年月
{
sftDate.Format = "yyyyMM";
}
if (nCtrlType == 6)//年
{
sftDate.Format = "yyyy";
}
ctrlPanelMain.Items.Add(sftDate);
}
else if (lstGuiDStru[nCtrls]._nUidCTY == 7)//控件类型TextArea
{
Ext.Net.Label sftLbl = new Ext.Net.Label();
sftLbl.ID = "lbl" + lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftLbl.Width = lstSftGuiD[nCtrls]._nUidTLW;
nCtrlPoX = nCtrlPoX + nCtrlHorDist;//计算控件位置X坐标的值
sftLbl.X = nCtrlPoX;
sftLbl.Y = nCtrlPoY + 3;
sftLbl.Text = lstSftGuiD[nCtrls]._strUidCDS;
ctrlPanelMain.Items.Add(sftLbl);
nCtrlPoX += lstSftGuiD[nCtrls]._nUidTLW;//变换X坐标
Ext.Net.TextArea sftTxtArea = new TextArea();
sftTxtArea.ID = lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftTxtArea.X = nCtrlPoX;
sftTxtArea.Y = nCtrlPoY;
sftTxtArea.Width = lstSftGuiD[nCtrls]._nUidCLW;
sftTxtArea.Height = lstSftGuiD[nCtrls]._nUidCLH;
if (nCtrlHeightRow == 0)
{
nCtrlHeightRow = lstSftGuiD[nCtrls]._nUidCLH;
}
else
{
if (nCtrlHeightRow < lstSftGuiD[nCtrls]._nUidCLH)
{
nCtrlHeightRow = lstSftGuiD[nCtrls]._nUidCLH;
}
}
ctrlPanelMain.Items.Add(sftTxtArea);
}
else if (lstGuiDStru[nCtrls]._nUidCTY == 9)//图片控件
{
Ext.Net.Image sftImage = new Image();
sftImage.ID = lstSftGuiD[nCtrls]._strUidFNA.ToString();
sftImage.X = nCtrlPoX;
sftImage.Y = nCtrlPoY;
sftImage.Width = lstSftGuiD[nCtrls]._nUidCLW;
sftImage.Height = lstSftGuiD[nCtrls]._nUidCLH;
ctrlPanelMain.Items.Add(sftImage);
nCtrlPoX = nCtrlPoX + nCtrlHorDist;//计算控件位置X坐标的值
}
}
#endregion 开始创建控件
////===创建列表控件并做初始化====Start()====/////
Ext.Net.Store gSoftMainStore = new Store();
gSoftMainStore.ID = "gSoftMainStore";
Ext.Net.GridPanel gSoftGridPanel = new GridPanel();
gSoftGridPanel.ID ="gSoftGridPanel";
Ext.Net.CheckboxSelectionModel gSoftSelectMode = new CheckboxSelectionModel();
gSoftSelectMode.ID = "gSoftSelectMode";
gSoftSelectMode.Mode = SelectionMode.Single;
gSoftGridPanel.SelectionModel.Add(gSoftSelectMode) ;
gSoftGridPanel.DirectEvents.CellClick.Event += gSoftGridPanel_DirectClick;
gSoftGridPanel.DirectEvents.CellClick.Timeout = 900000000;
Ext.Net.Parameter gSoftExtraParams = new Ext.Net.Parameter ()
{
Name="Values",
Value = "Ext.encode(#{gSoftGridPanel}.getRowsValues({selec tedOnly:true}))",
Mode = ParameterMode.Value
};
gSoftGridPanel.DirectEvents.CellClick.ExtraParams. Add(gSoftExtraParams);
gSoftGridPanel.Y = nCtrlPoY +50;
gSoftGridPanel.Width = 1200;
gSoftGridPanel.Height = 500;
gSoftGridPanel.Store.Add(gSoftMainStore);
ctrlPanelMain.Items.Add(gSoftGridPanel);
SoftComDataManager softDataMan = new SoftComDataManager ();
softDataMan.SoftGetListDataset(strPageUrl, "SFTDB", "", gSoftGridPanel, gSoftMainStore, strUserNum);
public bool SoftGetListDataset(string strUrlId, string strBussDbNam, string strWhere, Ext.Net.GridPanel GridPanelMain, Ext.Net.Store StoreMain, string strUserId)
{
DataSet dsCom = null;
List<gSoftGuiManager.sftListStru> lstStru = new List<gSoftGuiManager.sftListStru>();
try
{
string strUrl = strUrlId.Substring(strUrlId.LastIndexOf("/") + 1);
if (strUrlId.IndexOf("?") != -1)
{
strUrl = strUrl.Substring(0, strUrl.LastIndexOf("?"));
}
#region 构造列表的数据sql
string strTableName = "", strInitListSql = "", strLstAreNum = "", strOrderBy = "";//数据表名
strComSql = "select * from SFTUIM where UIMURL='" + strUrl + "' and UIMLST ='1'";
dsCom = DbSQLOperator.Query(strComSql);
if (dsCom.Tables[0].Rows.Count != 1) return false;
strTableName = dsCom.Tables[0].Rows[0]["UIMDTN"].ToString();//表名
strLstAreNum = dsCom.Tables[0].Rows[0]["UIMAUN"].ToString();//区号
strOrderBy = dsCom.Tables[0].Rows[0]["UIMDOL"].ToString();//数据排序字段集合
if (strTableName.IndexOf(".DBO.") != -1)
{
strTableName = strBussDbNam + strTableName;
}
DataSet dsTemp = null;
strComSql = "select * from SFTRGD where UIDURL='" + strUrl + "' and UIDUSN ='" + strUserId + "' and UIDARN='" + strLstAreNum + "' and UIDLSI=1 order by UIDORD";
dsTemp = DbSQLOperator.Query(strComSql);
int nRows = dsTemp.Tables[0].Rows.Count;
if (nRows == 0)
{
strComSql = "select * from SFTUID where UIDURL='" + strUrl + "' and UIDARN='" + strLstAreNum + "' and UIDLSI=1 order by UIDORD";
dsTemp = DbSQLOperator.Query(strComSql);
nRows = dsTemp.Tables[0].Rows.Count;
}
for (int nRow = 0; nRow < nRows; nRow++)
{
string strFieldName = dsTemp.Tables[0].Rows[nRow]["UIDFNA"].ToString();
string strListTitle = dsTemp.Tables[0].Rows[nRow]["UIDCDS"].ToString();
int nListWidth = int.Parse(dsTemp.Tables[0].Rows[nRow]["UIDCWH"].ToString());
string strIsKey = dsTemp.Tables[0].Rows[nRow]["UIDKEY"].ToString();
string strEdit = dsTemp.Tables[0].Rows[nRow]["UIDEDT"].ToString();
if (string.IsNullOrEmpty(strEdit))
{
strEdit = "0";
}
string strLocked = dsTemp.Tables[0].Rows[nRow]["UIDLCK"].ToString();
if (string.IsNullOrEmpty(strLocked))
{
strLocked = "0";
}
if (nRow == 0)
{
strInitListSql = strFieldName;
}
else
{
strInitListSql += "," + strFieldName;
}
gSoftGuiManager.sftListStru lstStrue = new gSoftGuiManager.sftListStru(strFieldName, strListTitle, nListWidth, strIsKey, int.Parse(strEdit), int.Parse(strLocked));
lstStru.Add(lstStrue);
}
if (string.IsNullOrEmpty(strWhere))
{
strInitListSql = "select top(200) " + strInitListSql + " from " + strTableName;
}
else
{
strInitListSql = "select " + strInitListSql + " from " + strTableName;
}
if (!string.IsNullOrEmpty(strWhere))
{
strInitListSql += " where " + strWhere;
}
string strRightWhere = SoftMakeUserDataGradeRight(strUrl, strUserId);//构造数据条件
if (!string.IsNullOrEmpty(strRightWhere))
{
if (strInitListSql.IndexOf("where") > -1)
{
strInitListSql += " and " + strRightWhere;
}
else
{
strInitListSql += " where " + strRightWhere;
}
}
if (!string.IsNullOrEmpty(strOrderBy))
{
strInitListSql += " order by " + strOrderBy;
}
#endregion 构造列表数据Sql
#region 初始化数据列表
Ext.Net.Model gSoftModel = new Model();
StoreMain.Model.Add(gSoftModel);
if (StoreMain.Model[0].Fields.Count == 0)
{
ModelField ModeField;
int nColmns = lstStru.Count;
if (nColmns <= 0) return false;
for (int nColmn = 0; nColmn < nColmns; nColmn++)
{
ModeField = new ModelField();
StoreMain.Model[0].Fields.Add(ModeField);
StoreMain.Model[0].Fields[nColmn].Name = lstStru[nColmn]._strFieldName;
GridPanelMain.ColumnModel.Columns.Add(new ColumnBase[] {
new Column
{
Text = lstStru[nColmn]._strColumnTitle,
DataIndex =lstStru[nColmn]._strFieldName,
Width = lstStru[nColmn]._nWidth,
}
});
/*if (lstStru[nColmn]._nEdit == 1)
{
Ext.Net.TextField txtFld = new TextField();
column.SetEditor(txtFld);
column.Editor.Add(txtFld);
}
if (lstStru[nColmn]._nLocked == 1)//set Locked Column
{
column.Sortable = false;
column.Locked = true;
}
GridPanelMain.ColumnModel.Columns.Add(column);
}*/
}
GridPanelMain.ColumnLines = true;
}
dsCom = DbSQLOperator.Query(strInitListSql);
nRows = dsCom.Tables[0].Rows.Count;
StoreMain.DataSource = dsCom;
StoreMain.DataBind();
Last edited by softlcx; Nov 10, 2013 at 12:47 AM.