您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> GridView自适应列宽 GridView 遍历 TextBox的问题

GridView自适应列宽 GridView 遍历 TextBox的问题

来源:网络整理     时间:2016/8/4 20:34:33     关键词:GridView自适应列宽

关于网友提出的“GridView自适应列宽 GridView 遍历 TextBox的问题”问题疑问,本网通过在网上对“GridView自适应列宽 GridView 遍历 TextBox的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:GridView自适应列宽 GridView 遍历 TextBox的问题
描述:

我的GridView列是动态添加,中间包括一个TextBox的列,如下:
public class GridViewTemplate : ITemplate
    {
        private string templateType;
        private string columnName;
        public GridViewTemplate(string type, string colname)
        {
            templateType = type;
            columnName = colname;
        }
        public void InstantiateIn(System.Web.UI.Control container)
        {
            switch(templateType)
            {
                case "DDL":
                    DropDownList DDL = new DropDownList();
                    DDL.ID = "DDL";
                    string sqlstr = "select codename from hr_code_" + columnName + " where isuse=1 order by codeid ";
                    DataSet myds = do_database.Query(sqlstr);
                    DDL.Items.Add("");
                    for (int i = 0; i <= myds.Tables[0].Rows.Count - 1; i++)
                        DDL.Items.Add(myds.Tables[0].Rows[i]["codename"].ToString());
                    container.Controls.Add(DDL);
                    break;
                case "TextBox":
                    TextBox TB_value = new TextBox();
                    TB_value.ID = "TB_value";
                    container.Controls.Add(TB_value);
                    break;
                case "Button":
                    Button Btn = new Button();
                    Btn.ID = "Btn_OK";
                    Btn.Text = "保存";
                    Btn.Width = 180;
                    Btn.ForeColor = System.Drawing.Color.White;
                    Btn.BackColor = System.Drawing.Color.BlueViolet;
                    container.Controls.Add(Btn);
                    break;
                default:
                    break;
            }
        }
    }
绑定列:
GridView1.Columns.Clear();
        System.Web.UI.WebControls.BoundField field;
        field = new BoundField();
        field.DataField = "empid";
        field.HeaderText = "员工序号";
        field.ReadOnly = true;
        GridView1.Columns.Add(field);
        field = new BoundField();
        field.DataField = "ygbh";
        field.HeaderText = "工号";
        field.ReadOnly = true;
        GridView1.Columns.Add(field);
        field = new BoundField();
        field.DataField = "empname";
        field.HeaderText = "姓名";
        field.ReadOnly = true;
        GridView1.Columns.Add(field);
        field = new BoundField();
        field.DataField = "department";
        field.HeaderText = "部门";
        field.ReadOnly = true;
        GridView1.Columns.Add(field);
        field = new BoundField();
        field.DataField = "c_memo";
        field.HeaderText = "修改字段";
        field.ReadOnly = true;
        GridView1.Columns.Add(field);
        field = new BoundField();
        field.DataField = "c_old_value";
        field.HeaderText = "原始值";
        field.ReadOnly = true;
        GridView1.Columns.Add(field);
        if (code_flag == 0)
        {
            TemplateField myField = new TemplateField();
            myField.ItemTemplate = new GridViewTemplate("TextBox", c_name);
            GridView1.Columns.Add(myField);
        }
        if (code_flag == 1)
        {
            TemplateField myField = new TemplateField();
            myField.ItemTemplate = new GridViewTemplate("DDL", c_name);
            GridView1.Columns.Add(myField);
        }
        string sqlstr = "select empid,ygbh,empname,department,c_memo,c_old_value from hr_modify_detail_info where department='" + deptname + "' and c_memo='" + c_memo + "' order by empid";
        DataSet myds = do_database.Query(sqlstr);
        GridView1.DataSource = myds.Tables[0].DefaultView;
        GridView1.DataBind();
我的页面中有一个Button的按钮,我想点击这个按钮的时候,更新数据,其中包括要获取GridView里面的textbox的值,我的做法如下:
for (int i = 0; i <= rownum - 1; i++)
        {
            empid = Convert.ToInt32(GridView1.Rows[i].Cells[0].Text);
            c_memo = GridView1.Rows[i].Cells[4].Text;
            if (code_flag == 1)
                c_new_value = ((DropDownList)GridView1.Rows[i].FindControl("DDL")).Text;
            if (code_flag == 0)
                c_new_value = ((TextBox)GridView1.Rows[i].FindControl("TB_value")).Text;
            sqlstr = " update hr_modify_detail_info set c_new_value ='" + c_new_value + "' where empid=" + empid + " and c_memo='" + c_memo + "'";
            do_database.ExecuteSql(sqlstr);
        }
但是程序运行的时候,提示找不到textbox对象,请问各位高手,谢谢!


以上介绍了“GridView自适应列宽 GridView 遍历 TextBox的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3111072.html

GridView自适应列宽相关图片

GridView自适应列宽相关文章