none
求个利用CheckBoxList动态的生成显示界面,并且能批量更新的完整例子 RRS feed

  • 问题

  •     由于数据库的数据列太多,全部打开常常导致浏览器崩溃,只好放弃用脚本隐藏列的方法,尝试利用CheckBoxList动态地生成SQL语句,并能批量更新。

        1.我尝试做了通过选择CheckBoxList的项,动态生成SQL的代码,但最后那个“,”没法消除,请看代码1请问:sqlstr.Remove(sqlstr.ToString().LastIndexOf(" , "),1);怎么没起作用?我Response.write(sqlstr);看了下结果:select ReceivableID , PropertyIDR , ContractNumberR , from ReceivableTable,最后那个“,”还在。
    2.以前我都是把GridView中各个列改成模板(例如Textbox)才能批量更新的,可是现在动态生成的界面,怎么才能修改啊?应该还要用到TextBox控件吧?请问具体该怎么做呢?
    ------------------------代码1-------------------------

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Text;
    using System.Data.SqlClient;
    
    public partial class Try_Default : System.Web.UI.Page
    {
        SqlConnection sqlcon;
        string strCon = ConfigurationManager.ConnectionStrings["长铁物业公司资产数据库ConnectionString"].ToString();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            { GridView1_DataBind(); }
        }
        public void GridView1_DataBind()
        {
            string sqlstr = "select ";
            for (int i = 0; i < CheckBoxList1.Items.Count; i++)
            {
                if (CheckBoxList1.Items[i].Selected)
                { sqlstr += CheckBoxList1.Items[i].Value.ToString() + " , "; }
            }
            sqlstr.Remove(sqlstr.ToString().LastIndexOf(" , "),1);//去不了","
            sqlstr += "PropertyCRAR";//上面的 ","不能去掉,只好加了这一句
            sqlstr += " from ReceivableTable";
            Response.Write(sqlstr);
            sqlcon = new SqlConnection(strCon);
            SqlDataAdapter da = new SqlDataAdapter(sqlstr, sqlcon);
            DataSet ds = new DataSet();
            da.Fill(ds, "ReceivableTable");
            sqlcon.Close();
            this.GridView1.DataSource = ds;
    
            this.GridView1.DataBind();
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            GridView1_DataBind();
        }
    }
    


    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!

    2012年7月4日 4:17

答案

全部回复