请教大家提示
  1想请教DataList嵌套是用checkbox还是Checkboxlist,点击button按钮能生成新的文件,进行动态数据的生成?
  2 技术上我可以绑定checkbox,但对打勾的数据项,点击按钮,没有生成新内容这个不知道是怎么实现的,请教诸位帮忙,谢谢。
  asp.net

解决方案 »

  1.   

    1可以使用Checkbox,DataList 控制項中的資料項目儲存在 DataListItemCollection 中,可以使用 DataList 控制項的 Items 屬性來存取。使用 DataListItem,以程式設計方式存取 DataList 控制項中的項目属性。于是在button事件中
    #region 复选checkbox,并生成模板//模板生成     
        protected void btnModel_Click(object sender, EventArgs e)
        {           
            //路径代码        //2013-5-16
            int i=1;//i判断哪个显示;
            int j = 0;//选中个数
            foreach (DataListItem dl in DataList1.Items)
            {            
                CheckBox chbx = (CheckBox)dl.FindControl("chkSelect");
                if (chbx.Checked)
                {
                    j++;
                    for (;i <= 5;)
                    {
                        //ObjContent = ObjContent.Replace("content" + i,chbx.Text);
                        ObjContent = ObjContent.Replace("content" + i, "<img  src='../images/00.png' alt='' align='absmiddle'/><font color='white'><b>" + chbx.Text.ToString() + "</b></font>");
                        i++;
                        break;
                    }            
                }
                if (j>5)
                {
                    string showMessage = "所选项多于5个";
                    System.Text.StringBuilder msgScript = new System.Text.StringBuilder();
                    msgScript.Append("<script language=JavaScript>\n");
                    msgScript.Append("alert(\"" + showMessage + "\");\n");
                    msgScript.Append("location.href='" + "../Web5_10/Default.aspx " + "';\n");
                    msgScript.Append("</script>\n");
                    Response.Write(msgScript.ToString());
                    Response.End();
                    return;
                }           
            
            }
            if (j<=5)
            {
                for (int GetNum = 5; GetNum > j; GetNum--)
                {
                    ObjContent = ObjContent.Replace("content" + GetNum, "");
                }            //定义新生成的html文件名
                //strNewsFileName取系统时间
                //将当前时间转化为文件名
                //string strNewsFileName = DateTime.Now.ToString("yyyyMMdd") + ".htm";
                //string strNewsFileName = DateTime.Now.Date.ToShortDateString() + ".htm";
                string strNewsFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".htm";
                //string strNewsFileName = (System.DateTime.Now).ToFileTime().ToString() + ".htm";
               StreamWriter objSw = new StreamWriter(strSavePath + strNewsFileName, false, System.Text.Encoding.GetEncoding("gb2312"));
              string Fp = Server.MapPath(strNewsFileName);    
                          
                //ObjContent = ObjContent.Replace("content2", "手机支付业务");
                //ObjContent = ObjContent.Replace("visible2", "visible");
                try
                {
                    objSw.Write(ObjContent);
                    objSw.Flush();                string showMessageOK = "已生成业务菜单" + Fp;
                    System.Text.StringBuilder msgScriptOK = new System.Text.StringBuilder();
                    msgScriptOK.Append("<script language=JavaScript>\n");
                    msgScriptOK.Append("alert(\"" + showMessageOK + "\");\n");
                    msgScriptOK.Append("location.href='" + "../Web5_10/Default.aspx " + "';\n");
                    //msgScriptOK.Append("location.href='" + Fp + "';\n");
                    msgScriptOK.Append("</script>\n");
                    Response.Write(msgScriptOK.ToString());
                    Response.End();
                }
                catch (Exception ex)
                {
                    HttpContext.Current.Response.Write(ex.Message);
                    HttpContext.Current.Response.End();
                }
                finally
                {
                    objSw.Close();
                }
            }       
           
      }
         #endregion
      

  2.   

    其实就是当选中DataList嵌套的Checkbox的数据时,把数据通过htm模板自动生成htm页面。可以在DataList的项模板进行Item设置就ok了。
      

  3.   

    1你在DataList的项模板中嵌套checkbox
    2在编程时,用DataListItem foreach循环,选中的输出,替换你写的htm模板就ok