我正在使用 C# 和 ASP.NET 开发一个 Web 应用程序。我通过同一页面中的文本框将数据绑定到gridview,并在“保存”按钮单击事件中编写了绑定方法。
button_click
现在,一旦我刷新页面以通过“保存”事件将数据从文本框保存到网格视图,发现网格视图再次与重复行绑定,这真的很奇怪。我曾尝试在 Firefox、chrome 和 IE 8 上加载页面....但结果是否定的....
谁能让我知道为什么会发生并指导我解决它....
这是我的 C# 代码:
string con = ConfigurationSettings.AppSettings["ConnectionStrings"];
protected void Page_Load(object sender, EventArgs e) {
tbladdasset.Visible = false;
btnsaveasset.Enabled = false;
lblErrMsg.Text = "";
if (!IsPostBack)
{
bindassets("", "");
ViewState["sortOrder"] = "";
}
}
private void bindassets(string sortExp, string sortDir)
{
try
{
SqlConnection con1 = new SqlConnection(con);
con1.Open();
SqlCommand cmd = new SqlCommand("select Description,CONVERT(VARCHAR(10), RecievedDate, 101) as DateRecieved,cost,Modelno,Quantity from Asset", con1);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
con1.Close();
if (dt.Rows.Count > 0)
{
DataView dv = dt.DefaultView;
if (sortExp != string.Empty)
{
dv.Sort = string.Format("{0} {1}", sortExp, sortDir);
}
grdvAssets.DataSource = dv;
grdvAssets.DataBind();
}
else
{
lblErrMsg.Text = "No data found...";
}
btnsaveasset.Enabled = false;
tbladdasset.Visible = false;
}
catch
{
lblErrMsg.Text = "Failed to connect server...";
}
}
protected void btnaddnew_Click(object sender, EventArgs e)
{
tbladdasset.Visible = true;
btnsaveasset.Enabled = true;
lblErrMsg.Text = "";
txtdescription.Text = "";
txtdtrecieved.Text = "";
txtcost.Text = "";
txtmodelno.Text = "";
txtquantity.Text = "";
}
protected void btnsaveasset_Click(object sender, EventArgs e)
{
if (txtdescription.Text != "" && txtdtrecieved.Text != "" && txtcost.Text != "" && txtmodelno.Text != "" && txtquantity.Text != "")
{
try
{
string desc= txtdescription.Text;
DateTime dtrecd = Convert.ToDateTime(txtdtrecieved.Text);
string cost = txtcost.Text;
string modelno = txtmodelno.Text;
double quantity = Convert.ToDouble(txtquantity.Text);
SqlConnection sqlcon = new SqlConnection(con);
sqlcon.Open();
string save = "Insert into Asset(Description,Recieveddate,cost,Modelno,Quantity)values(@desc,@date,@cost,@modelno,@quantity)";
SqlCommand cmd = new SqlCommand(save, sqlcon);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@desc", desc);
cmd.Parameters.Add("@date", dtrecd);
cmd.Parameters.Add("@cost", cost);
cmd.Parameters.Add("@modelno", modelno);
cmd.Parameters.Add("@quantity", quantity);
cmd.ExecuteNonQuery();
sqlcon.Close();
bindassets("", "");
btnsaveasset.Enabled = false;
txtdescription.Text = "";
txtdtrecieved.Text = "";
txtcost.Text = "";
txtmodelno.Text = "";
txtquantity.Text = "";
lblErrMsg.Text = "data inserted successfully..";
}
catch
{
lblErrMsg.Text = "Please enter valid data and try again...";
}
}
else
{
lblErrMsg.Text = "Please enter valid data and try again...";
}
}
protected void grdvAssets_Sorting(object sender, GridViewSortEventArgs e)
{
bindassets(e.SortExpression, sortOrder);
}
public string sortOrder
{
get
{
if (ViewState["sortOrder"].ToString() == "desc")
{
ViewState["sortOrder"] = "asc";
}
else
{
ViewState["sortOrder"] = "desc";
}
return ViewState["sortOrder"].ToString();
}
set
{
ViewState["sortOrder"] = value;
}
}
任何人请帮助我.....提前谢谢..