如何在c#代码中发送动态绑定gridview [英] how to sent dynamic bind gridview in c# code

查看:94
本文介绍了如何在c#代码中发送动态绑定gridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 使用系统; 
使用 System.Web;
使用 System.Web.UI;
使用 System.Web.UI.WebControls;
使用 System.IO;
使用 System.Data;
使用 System.Net.Mail;
使用 MySql.Data.MySqlClient;
使用 System.Configuration;

public partial class CS:System.Web.UI.Page
{
protected void Page_Load( object sender,EventArgs e)
{
if (!this .IsPostBack)
{

string EmailID = jitendra.gupta@osmoindia.com;
DateTime dt1 = DateTime.Now;
string 今天= dt1.ToString( YYYY-MM-DD);
// string Status =Approved;

MySqlConnection精读;
con = new MySqlConnection(ConfigurationManager.ConnectionStrings [ CON]的ToString());

con.Open();
MySqlCommand cmd = new MySqlCommand( SELECT contractorbasicdetail.EmailID,contractorbasicdetail.Contractor_ID,contractercategoryinfo.SCID,tender_information.TenderNo,tender_information.CID,add_department.DepName,add_distric.DName,add_state.SName,tender_information.PAC,tender_information.PTID,tender_information.EMD FROM contractordistric INNER JOIN contractorbasicdetail INNER JOIN contracterplanedetail ON contractorbasicdetail.Contractor_ID = contracterplanedetail.Contracter_ID INNER JOIN contracterstate ON contracterplanedetail.Contracter_ID = contracterstate.Conreacter_ID INNER JOIN contractdepartment ON contracterstate.SID = contractdepartment.SID AND contracterstate.Conreacter_ID = contractdepartment.Contracter_ID ON contractordistric.Contractor_ID = contractdepartment.Contracter_ID AND contractordistric。 Dep_ID = contractdepartment.Dep_ID INNER JOIN contractercategoryinfo ON con tractordistric.Contractor_ID = contractercategoryinfo.Contracter_ID INNER JOIN categoryinfo ON contractercategoryinfo.SCID = categoryinfo.SCID AND contractercategoryinfo.TKID = categoryinfo.TKID INNER JOIN tender_information on categoryinfo.TenderNo = tender_information.TenderNo AND contracterstate.CID = tender_information.CID AND contracterstate.SID = tender_information.SID和contractordistric.DID = tender_information.DID AND contractdepartment.Dep_ID = tender_information.Dep_ID AND contractdepartment.From1< tender_information.emd and = contractdepartment.to1 = > tender_information.EMD INNER JOIN add_department ON tender_information.Dep_ID = add_department.Dep_ID INNER JOIN add_distric ON tender_information.DID = add_distric.DID INNER JOIN add_state ON tender_information.SID = add_state.SID WHERE(contracterplanedetail.PlaneEndDate> ' +今天+ ')AND(tender_information.Status ='Approved')AND(contractorbasicdetail。 EmailID =' + EmailID + ')GROUP BY categoryinfo.TenderNo,contractorbasicdetail.EmailID,con);
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
if ( ds.Tables [ 0 ]。Rows.Count > 0
{
GridView1.DataSource = ds;
GridView1.DataBind();
}

}
}
受保护 v oid SendEmail( object sender,EventArgs e)
{
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter hw = new HtmlTextWriter(sw))
{
GridView1.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
MailMessage mm = new MailMessage( Jitendragupta1040 @ gmail.com Jitendra.gupta@osmoindia.com);
mm.Subject = GridView Email;
mm.Body = GridView:< hr /> + sw.ToString (); ;
mm.IsBodyHtml = true ;
SmtpClient smtp = new SmtpClient();
smtp.Host = smtpcorp.com;
smtp.EnableSsl = true ;
System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
NetworkCred.UserName = rohitgupta1040@gmail.com;
NetworkCred.Password = 密码;
smtp.UseDefaultCredentials = true ;
smtp.Credentials = NetworkCred;
smtp.Port = 587 ;
smtp.Send(mm);
}
}
}

public 覆盖 void VerifyRenderingInServerForm(控制控件)
{
/ * 验证控件是否呈现* /
}

受保护 void lnkDownload2_Click( object sender,EventArgs e)
{
Response.Write( 剩余工作量);
}


受保护 void GridView1_RowDataBound(< span class =code-keyword> object
sender,GridViewRowEventArgs e)
{
if (e.Row.RowType = = DataControlRowType.DataRow)
{
Label lblSerial =(Label)e.Row.FindControl( lblSerial);
lblSerial.Text =((GridView1.PageIndex * GridView1.PageSize)+ e.Row.RowIndex + 1 )。ToString();
}
}
}





它给出以下错误请帮忙解决



RegisterForEventValidation只能在Render()期间调用;



谢谢

解决方案

试试这个:

只能在Render()期间调用RegisterForEventValidation; [ ^ ]

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Data;
using System.Net.Mail;
using MySql.Data.MySqlClient;
using System.Configuration;

public partial class CS : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {

            string EmailID = "jitendra.gupta@osmoindia.com";
            DateTime dt1 = DateTime.Now;
            string Today = dt1.ToString("yyyy-MM-dd");
            //string Status = "Approved";

            MySqlConnection con;
            con = new MySqlConnection(ConfigurationManager.ConnectionStrings["con"].ToString());

            con.Open();
            MySqlCommand cmd = new MySqlCommand("SELECT contractorbasicdetail.EmailID,contractorbasicdetail.Contractor_ID,contractercategoryinfo.SCID,tender_information.TenderNo, tender_information.CID,add_department.DepName,add_distric.DName,add_state.SName,tender_information.PAC,tender_information.PTID, tender_information.EMD FROM contractordistric INNER JOIN contractorbasicdetail INNER JOIN contracterplanedetail ON contractorbasicdetail.Contractor_ID =contracterplanedetail.Contracter_ID INNER JOIN contracterstate ON contracterplanedetail.Contracter_ID =contracterstate.Conreacter_ID INNER JOIN contractdepartment ON contracterstate.SID =contractdepartment.SID AND contracterstate.Conreacter_ID =contractdepartment.Contracter_ID ON contractordistric.Contractor_ID =contractdepartment.Contracter_ID AND contractordistric.Dep_ID =contractdepartment.Dep_ID INNER JOIN contractercategoryinfo ON contractordistric.Contractor_ID =contractercategoryinfo.Contracter_ID INNER JOIN categoryinfo ON contractercategoryinfo.SCID =categoryinfo.SCID AND contractercategoryinfo.TKID =categoryinfo.TKID INNER JOIN tender_information ON categoryinfo.TenderNo =tender_information.TenderNo AND contracterstate.CID =tender_information.CID AND contracterstate.SID =tender_information.SID AND contractordistric.DID =tender_information.DID AND contractdepartment.Dep_ID =tender_information.Dep_ID AND contractdepartment.From1 <tender_information.emd and="" contractdepartment.to1="">tender_information.EMD INNER JOIN add_department ON tender_information.Dep_ID =add_department.Dep_ID INNER JOIN add_distric ON tender_information.DID =add_distric.DID INNER JOIN add_state ON tender_information.SID =add_state.SID WHERE (contracterplanedetail.PlaneEndDate > '" + Today + "') AND (tender_information.Status='Approved')AND (contractorbasicdetail.EmailID = '" + EmailID + "') GROUP BY categoryinfo.TenderNo,contractorbasicdetail.EmailID", con);
            MySqlDataAdapter da = new MySqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            con.Close();
            if (ds.Tables[0].Rows.Count > 0)
            {
                GridView1.DataSource = ds;
                GridView1.DataBind();
            }
           
        }
    }
    protected void SendEmail(object sender, EventArgs e)
    {
        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter hw = new HtmlTextWriter(sw))
            {
                GridView1.RenderControl(hw);
                StringReader sr = new StringReader(sw.ToString());
                MailMessage mm = new MailMessage("Jitendragupta1040@gmail.com", "Jitendra.gupta@osmoindia.com");
                mm.Subject = "GridView Email";
                mm.Body = "GridView:<hr />" + sw.ToString(); ;
                mm.IsBodyHtml = true;
                SmtpClient smtp = new SmtpClient();
                smtp.Host = "smtpcorp.com";
                smtp.EnableSsl = true;
                System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
                NetworkCred.UserName = "rohitgupta1040@gmail.com";
                NetworkCred.Password = "Password";
                smtp.UseDefaultCredentials = true;
                smtp.Credentials = NetworkCred;
                smtp.Port = 587;
                smtp.Send(mm);
            }
        }
    }

    public override void VerifyRenderingInServerForm(Control control)
    {
        /* Verifies that the control is rendered */
    }

    protected void lnkDownload2_Click(object sender, EventArgs e)
    {
        Response.Write("Work Remaining");
    }


    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lblSerial = (Label)e.Row.FindControl("lblSerial");
            lblSerial.Text = ((GridView1.PageIndex * GridView1.PageSize) + e.Row.RowIndex + 1).ToString();
        }
    }
}



it giving following error Please help to solve

RegisterForEventValidation can only be called during Render();

thanks

解决方案

try this:
RegisterForEventValidation can only be called during Render();[^]


这篇关于如何在c#代码中发送动态绑定gridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆