gridview绑定数据表 [英] gridview binds datatable
本文介绍了gridview绑定数据表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
public partial class Default16 : System.Web.UI.Page
{
int result1, result2, result3;
private void SetInitialRow()
{
DataTable dt = new DataTable();
DataRow dr = null;
dt.Columns.Add(new DataColumn("RowNumber", typeof(string)));
dt.Columns.Add(new DataColumn("Column1", typeof(string)));
dt.Columns.Add(new DataColumn("Column2", typeof(string)));
dt.Columns.Add(new DataColumn("Column3", typeof(string)));
dt.Columns.Add(new DataColumn("Column4", typeof(string)));
dt.Columns.Add(new DataColumn("Column5", typeof(string)));
dt.Columns.Add(new DataColumn("Column6", typeof(string)));
dr = dt.NewRow();
dr["RowNumber"] = 1;
dr["Column1"] = string.Empty;
dr["Column2"] = string.Empty;
dr["Column3"] = string.Empty;
dr["Column4"] = string.Empty;
dr["Column5"] = string.Empty;
dr["Column6"] = string.Empty;
dt.Rows.Add(dr);
ViewState["CurrentTable"] = dt;
Gridview1.DataSource = dt;
Gridview1.DataBind();
DropDownList ddl1 = (DropDownList)Gridview1.Rows[0].Cells[2].FindControl("DropDownList1");
FillDropDownList(ddl1);
DropDownList ddl2 = (DropDownList)Gridview1.Rows[0].Cells[3].FindControl("DropDownList2");
FillDropDownList1(ddl2);
}
private void AddNewRowToGrid()
{
int rowIndex = 0;
if (ViewState["CurrentTable"] != null)
{
DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
DataRow drCurrentRow = null;
int icount, count;
icount = Gridview1.Rows.Count;
count = Gridview1.Rows.Count;
if (icount==1)
{
icount = 0;
}
if (dtCurrentTable.Rows.Count > 0)
{
for (int i = icount; i <= count; i++)
{
if (i==0)
{
dtCurrentTable.Rows[0]["RowNumber"] = i+1;
dtCurrentTable.Rows[0]["Column1"] = string.Empty;
dtCurrentTable.Rows[0]["Column2"] = string.Empty;
dtCurrentTable.Rows[0]["Column3"] = string.Empty;
dtCurrentTable.Rows[0]["Column4"] = string.Empty;
dtCurrentTable.Rows[0]["Column5"] = string.Empty;
dtCurrentTable.Rows[0]["Column6"] = string.Empty;
}
else
{
TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox1");
TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[4].FindControl("TextBox2");
TextBox box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[5].FindControl("TextBox3");
TextBox box4 = (TextBox)Gridview1.Rows[rowIndex].Cells[6].FindControl("TextBox4");
DropDownList ddl1 = (DropDownList)Gridview1.Rows[rowIndex].Cells[2].FindControl("DropDownList1");
DropDownList ddl2 = (DropDownList)Gridview1.Rows[rowIndex].Cells[3].FindControl("DropDownList2");
drCurrentRow = dtCurrentTable.NewRow();
drCurrentRow["RowNumber"] = i + 1;
dtCurrentTable.Rows.Add(drCurrentRow);
dtCurrentTable.Rows[i]["Column1"] = box1.Text;
dtCurrentTable.Rows[i]["Column2"] = ddl1.SelectedItem.Text;
dtCurrentTable.Rows[i]["Column3"] = ddl2.SelectedItem.Text;
dtCurrentTable.Rows[i]["Column4"] = box2.Text;
dtCurrentTable.Rows[i]["Column5"] = box3.Text;
dtCurrentTable.Rows[i]["Column6"] = box4.Text;
rowIndex++;
}
}
ViewState["CurrentTable"] = dtCurrentTable;
Gridview1.DataSource = dtCurrentTable;
Gridview1.DataBind();
}
}
else
{
Response.Write("ViewState is null");
}
SetPreviousData();
}
private void SetPreviousData()
{
int rowIndex = 0;
if (ViewState["CurrentTable"] != null)
{
DataTable dt = (DataTable)ViewState["CurrentTable"];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox1");
TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[4].FindControl("TextBox2");
TextBox box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[5].FindControl("TextBox3");
TextBox box4 = (TextBox)Gridview1.Rows[rowIndex].Cells[6].FindControl("TextBox4");
DropDownList ddl1 = (DropDownList)Gridview1.Rows[rowIndex].Cells[2].FindControl("DropDownList1");
DropDownList ddl2 = (DropDownList)Gridview1.Rows[rowIndex].Cells[3].FindControl("DropDownList2");
FillDropDownList(ddl1);
FillDropDownList1(ddl2);
box1.Text = dt.Rows[i]["Column1"].ToString();
ddl1.ClearSelection();
if (ddl1.Items.FindByText(dt.Rows[i]["Column2"].ToString()) != null)
{
ddl1.Items.FindByText(dt.Rows[i]["Column2"].ToString()).Selected = true;
}
if (ddl2.Items.FindByText(dt.Rows[i]["Column3"].ToString()) != null)
{
ddl2.Items.FindByText(dt.Rows[i]["Column3"].ToString()).Selected = true;
}
box2.Text = dt.Rows[i]["Column4"].ToString();
box3.Text = dt.Rows[i]["Column5"].ToString();
box4.Text = dt.Rows[i]["Column6"].ToString();
Button b2 = (Button)Gridview1.Rows[rowIndex].Cells[7].FindControl("ButtonAdd123");
if (i == 0)
{
b2.Visible = true;
box1.ReadOnly = false ;
box2.ReadOnly = false;
box3.ReadOnly = false;
box4.ReadOnly = false;
ddl1.Enabled = true ;
ddl2.Enabled = true;
}
else
{
b2.Visible = false;
box1.ReadOnly = true;
box2.ReadOnly = true;
box3.ReadOnly = true;
box4.ReadOnly = true;
ddl1.Enabled = false;
ddl2.Enabled = false;
}
rowIndex++;
}
}
}
}
private ArrayList GetDummyData()
{
ArrayList arr = new ArrayList();
arr.Add(new ListItem("Item1","1"));
arr.Add(new ListItem("Item2","2"));
arr.Add(new ListItem("Item3","3"));
arr.Add(new ListItem("Item4","4"));
arr.Add(new ListItem("Item5","5"));
return arr;
}
private void FillDropDownList(DropDownList ddl)
{
ArrayList arr = GetDummyData();
foreach (ListItem item in arr)
{
ddl.Items.Add(item);
}
}
private ArrayList GetDummyData1()
{
ArrayList arr = new ArrayList();
arr.Add(new ListItem("KGS","1"));
arr.Add(new ListItem("NOS","2"));
arr.Add(new ListItem("LITRE","3"));
arr.Add(new ListItem("PACKS","4"));
arr.Add(new ListItem("BALE","5"));
return arr;
}
private void FillDropDownList1(DropDownList ddl)
{
ArrayList arr = GetDummyData1();
foreach (ListItem item in arr)
{
ddl.Items.Add(item);
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SetInitialRow();
}
}
protected void ButtonAdd123_Click(object sender, EventArgs e)
{
AddNewRowToGrid();
}
protected void Gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TextBox TextBox2 = (TextBox)e.Row.FindControl("TextBox2");
TextBox TextBox3 = (TextBox)e.Row.FindControl("TextBox3");
TextBox TextBox4 = (TextBox)e.Row.FindControl("TextBox4");
}
}
protected void TextBox3_TextChanged(object sender, EventArgs e)
{
try
{
int value;
for (int i = 0; i < Gridview1.Rows.Count; i++)
{
GridViewRow row = Gridview1.Rows[i];
TextBox TextBox2 = (TextBox)row.FindControl("TextBox2");
TextBox TextBox3 = (TextBox)row.FindControl("TextBox3");
TextBox TextBox4 = (TextBox)row.FindControl("TextBox4");
value = Convert.ToInt32(TextBox2.Text) * Convert.ToInt32(TextBox3.Text);
TextBox4.Text = Convert.ToString(value);
}
}
catch (Exception ex)
{
throw ex;
}
}
}
推荐答案
这是一个很好的代码,做得很好.
还是有个问题?
我认为您要么要表达一个问题,要么提交这是一个提示/技巧或文章.
我建议您阅读提交的常见问题解答.
(或解决您要问的问题)
人们会帮助您,但是代码转储只会令人反感.
That is a good code, well done.
Or have you got a question?
I think you either need to phrase a question or maybe submit this is a Tip/Trick or Article.
I suggest you read the submissions FAQs.
(Or work out what you want to ask)
People will help you, but a code dump just antagonises.
这篇关于gridview绑定数据表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文