需要做一个控件实现数据对输入功能,用Dictionary来存数据,Key取自数据库,Value为输入值,请指教!
一个录入界面,用控件来实现.使用Dictionary<string, string> _values = new Dictionary<string, string>()来存数据,界面如下:移交部门 Value 数量 Value
单位名称 Value 价值 Value
格式为一个表格形式,Key的值取自数据库,Value为一个文本框需要输入数据,控件能把一对对的Key和value值存到_values 里,然后写入数据库.该怎么实现请指教.谢谢!
private void ShowDataAsHTML(HtmlTextWriter output, Meta_Table_Class _qv, DataTable _dt)
{
output.AddAttribute(HtmlTextWriterAttribute.Class, this.TableClass);
output.RenderBeginTag(HtmlTextWriterTag.Table);
output.RenderBeginTag(HtmlTextWriterTag.Tr);
int _lineCont = 0;
//循环列
foreach (Meta_TableColumn_Class _col in _qv.Columns)
{
//Dictionary<string, string> _values = new Dictionary<string, string>();
//是否有数据
if (_col.CanDisplay)
{
// bool _Secret = (_col.SecretLevel >_su.SecretLevel);
int _colLen = Convert.ToInt16(_col.DisplayLength);
int _colHeight = Convert.ToInt16(_col.DisplayHeight);
if ((_colLen + _lineCont) > 2)
{
for (int i = _lineCont; i < 2; i++)
{
output.AddAttribute(HtmlTextWriterAttribute.Class, this.DataCaptionClass);
output.RenderBeginTag(HtmlTextWriterTag.Td);
output.Write(" ");
output.RenderEndTag();
output.AddAttribute(HtmlTextWriterAttribute.Class, this.DataClass);
output.RenderBeginTag(HtmlTextWriterTag.Td);
output.Write(" ");
output.RenderEndTag();
}
output.RenderEndTag();
output.RenderBeginTag(HtmlTextWriterTag.Tr);
_lineCont = 0;
}
ShowTableItem(output, _col.DisplayTitle, _colLen, _colHeight, _col.ColumnName, _dt, _col.DisplayFormat);
_lineCont += _colLen;
}
}
if (_lineCont < 2)
{
for (int i = _lineCont; i < 2; i++)
{
output.AddAttribute(HtmlTextWriterAttribute.Class, this.DataCaptionClass);
output.RenderBeginTag(HtmlTextWriterTag.Td);
output.Write(" ");
output.RenderEndTag();
output.AddAttribute(HtmlTextWriterAttribute.Class, this.DataClass);
output.RenderBeginTag(HtmlTextWriterTag.Td);
output.Write(" ");
output.RenderEndTag();
}
}
output.RenderEndTag();
output.RenderEndTag();
}
private void ShowTableItem(HtmlTextWriter output, string _displayTitle, int _colLen, int _colHeight, string _columnName, DataTable _dt, string _displayFormat)
{
DataRow _dr = null;
StringBuilder _str = new StringBuilder();
output.AddAttribute(HtmlTextWriterAttribute.Class, this.DataCaptionClass);
output.RenderBeginTag(HtmlTextWriterTag.Td);
output.Write(System.Web.HttpUtility.HtmlEncode(_displayTitle));
output.RenderEndTag();
if (_colLen > 1)
{
output.AddAttribute(HtmlTextWriterAttribute.Class, this.LargeDataClass);
output.AddAttribute(HtmlTextWriterAttribute.Colspan, "3");
}
else
{
output.AddAttribute(HtmlTextWriterAttribute.Class, this.DataClass);
}
if (_dt.Rows.Count > 0)
{
_dr = _dt.Rows[0];
if (_dt.Columns[_columnName].DataType == typeof(DateTime))
{
output.RenderBeginTag(HtmlTextWriterTag.Td);
if (!_dr.IsNull(_columnName))
{
//如果是日期型数据,按照格式显示数据
DateTime _date = (DateTime)_dr[_columnName];
if (_displayFormat == "")
{
_displayFormat = "yyyy-MM-dd";
}
output.RenderBeginTag("input");
//output.Write(System.Web.HttpUtility.HtmlEncode(_date.ToString(_displayFormat)));
}
else
{
output.Write(System.Web.HttpUtility.HtmlEncode(""));
}
}
else
{
string _sdata = _dr[_columnName].ToString();
if (_sdata.Length > 20 && _colLen < 2)
{
output.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
}
output.RenderBeginTag(HtmlTextWriterTag.Td);
output.RenderBeginTag("input");
//output.Write(System.Web.HttpUtility.HtmlEncode(_sdata));
}
output.RenderEndTag();
}
else
{
output.RenderBeginTag(HtmlTextWriterTag.Td);
output.Write(" ");
output.RenderEndTag();
}
}
补充:.NET技术 , 组件/控件开发