当前位置:编程学习 > C#/ASP.NET >>

需要做一个控件实现数据对输入功能,用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技术 ,  组件/控件开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,