webForumDet fria alternativet

Lägg in en ny rad i en datagrid

.NET

8 svar · 327 visningar · startad av wwwstekaren

Medlem sedan apr. 2003234 inlägg
Frågan#1

Har ett problem, jag skriver ut en datagrid där alla namn finns som matchar med det som jag skrev in, men nu vill jag även ha upp det namnet som jag skrev in i fältet.

försöker få ut en rad under datagridden funkar inte

System.Data.DataRow datarow = completeTable.NewRow();

		datarow\["Name"\] = "kalle";

		completeTable.Rows.Add(datarow);
Medlem sedan apr. 2003234 inlägg
#2

Det funkar nu men nu kommer det upp både i min nya datagrid och den gamla, den ska först komma upp i den övre datagriden sedan så får man välja om man vill lägga till den till den undre data gridden

Medlem sedan apr. 2003234 inlägg
#3

Här kommer koden, alltså jag får nu upp texten jag skriver in både i den nya och den gamla tabellen vill bara ha upp den i den nya för att sedan där kunna välja om man vill lägga till den:)

Här är aspx.cs koden:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Globalization;
using System.IO;

namespace beerlist5
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid XmlDataGrid;
protected System.Web.UI.WebControls.Label ErrorMessage;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
protected System.Web.UI.WebControls.TextBox Responsible;
protected System.Web.UI.WebControls.DataGrid list;
protected System.Web.UI.WebControls.TextBox Rows;

	string SortField 
	{

		get 
		{
			object o = ViewState\["SortField"\];
			if (o == null) 
			{
				return String.Empty;
			}
			return (string)o;
		}

		set 
		{
			if (value == SortField) 
			{
				//if ascending change to descending or vice versa.
				SortAscending = !SortAscending;
			}
			ViewState\["SortField"\] = value;
		}
	}

	// using ViewState for SortAscending property
	bool SortAscending 
	{

		get 
		{
			object o = ViewState\["SortAscending"\];
			if (o == null) 
			{
				return true;
			}
			return (bool)o;
		}

		set 
		{
			ViewState\["SortAscending"\] = value;
		}
	}

	protected void Page_Load(Object src, EventArgs e)
	{
		if(!IsPostBack)
		{
			BindGrid();
		}
	}

	
	protected void BindGrid()
	{
		
		DataSet ds = LoadWebs();
	
		DataView dv = new DataView(ds.Tables\[0\]);
		DataTable dt = dv.Table;
	
		//Custom names for the columns
		//int row = Convert.ToInt32(e.Item.ItemIndex);
		
		//ds.Tables\[0\].Rows\[row\]\["Responsible"\] = EditText.Text;

		dt.Columns\[0\].ColumnName = "Responsible";
		dt.Columns\[1\].ColumnName = "Name";
		dt.Columns\[2\].ColumnName = "LastName";
		dt.Columns\[3\].ColumnName = "Email";
		dt.Columns\[4\].ColumnName = "Company";
		dt.Columns\[5\].ColumnName = "Contact";
	
		//Sorting criteria
		dv.Sort = SortField;
		if (!SortAscending)
		{
			dv.Sort += " ASC";	//append "ASC" to the sort field name in order to sort descending
		}
    
		XmlDataGrid.DataSource = dv;
		XmlDataGrid.DataBind();

	}
	/\*protected void SortGrid(Object src, DataGridSortCommandEventArgs e)
	{
		XmlDataGrid.CurrentPageIndex = 0;
		// get the requested sorting field name and set it to SortField SortField = e.SortExpression; BindGrid(); 

	}\*/
	protected void DEDR_Edit(object sender, DataGridCommandEventArgs e)
	{
		XmlDataGrid.EditItemIndex = Convert.ToInt32(e.Item.ItemIndex);
		XmlDataGrid.DataSource = LoadWebs();
		XmlDataGrid.DataBind();
	}

	protected void DEDR_Update(object sender, DataGridCommandEventArgs e)
	{
		DataSet dataSet = LoadWebs();
		//DataSet dataSet  = LoadWebs();
		string CheckName = ((TextBox)e.Item.FindControl("txtName")).Text;// hämtar värdet från textboxen i formuläret
		string CheckLastName = ((TextBox)e.Item.FindControl("txtLastName")).Text;
		string CheckEmail = ((TextBox)e.Item.FindControl("txtEmailAddress")).Text;
		string CheckCompany = ((TextBox)e.Item.FindControl("txtCompany")).Text;
		string CheckContact = ((DropDownList)e.Item.FindControl("txtContact")).SelectedItem.Text;
		string Check = CheckName + CheckLastName /\*+ CheckEmail\*/;
		
		string inputText = ((TextBox)e.Item.FindControl("txtName")).Text;

		TextBox EditText = null;
		DropDownList EditDropDown = null;
		bool found = false;	
		
		DataTable completeTable = dataSet.Tables\[0\];
		DataTable duplicateTable = new DataTable();
		int row = Convert.ToInt32(e.Item.ItemIndex);	
		foreach(DataColumn col in completeTable.Columns)
			duplicateTable.Columns.Add(new DataColumn(col.ColumnName, col.DataType));
		
		for(int i = 0; i \< completeTable.Rows.Count; i++)
		{
			if(completeTable.Rows*\["Name"\].ToString() + completeTable.Rows*\["LastName"\].ToString() /\*+ completeTable.Rows*\["Email"\].ToString()\*/ == Check)
			{
				
				found = true;
				duplicateTable.ImportRow(completeTable.Rows*);
				Response.Write("Följande person finns redan");
				//Response.Write (i);
				
				//break;
			}
	
		}
		System.Data.DataRow datarow = completeTable.NewRow();

		/\*datarow\["LastName"\] = CheckLastName;
		datarow\["Name"\] = CheckName;

*/

		datarow\["Name"\] = Check;

		completeTable.Rows.Add(datarow);

		if(!found)
		{

			EditText = (TextBox)e.Item.FindControl("txtResponsible");
			dataSet.Tables\[0\].Rows\[row\]\["Responsible"\] = EditText.Text;

			EditText = (TextBox)e.Item.FindControl("txtName");
			dataSet.Tables\[0\].Rows\[row\]\["Name"\] = EditText.Text;
 
			EditText = (TextBox)e.Item.FindControl("txtLastName");
			dataSet.Tables\[0\].Rows\[row\]\["LastName"\] = EditText.Text;
 
			EditText = (TextBox)e.Item.FindControl("txtEmailAddress");
			dataSet.Tables\[0\].Rows\[row\]\["Email"\]= EditText.Text;
 
			EditText = (TextBox)e.Item.FindControl("txtCompany");
			dataSet.Tables\[0\].Rows\[row\]\["Company"\] = EditText.Text;
 
			EditDropDown = (DropDownList)e.Item.FindControl("txtContact");
			dataSet.Tables\[0\].Rows\[row\]\["Contact"\] = EditDropDown.SelectedItem.Text;
			//dataSet.Tables\[0\].Rows.
			dataSet.WriteXml(Server.MapPath("webs.xml"));
			Session\["Webs"\] = null;
			XmlDataGrid.EditItemIndex = -1;
		}

		list.DataSource = duplicateTable;
		list.DataBind();
		XmlDataGrid.DataSource = LoadWebs();
		XmlDataGrid.DataBind();
	}

	protected void DEDR_Cancel(object sender, DataGridCommandEventArgs e)
	{
		XmlDataGrid.EditItemIndex = -1;
		Session\["Webs"\] = null;
		XmlDataGrid.DataSource = LoadWebs();
		XmlDataGrid.DataBind();
	}

	protected void DEDR_Delete(object sender, DataGridCommandEventArgs e)
	{
		DataSet dataSet = LoadWebs();
		int row = Convert.ToInt32(e.Item.ItemIndex);
		dataSet.Tables\[0\].Rows\[row\].Delete();
		dataSet.WriteXml(Server.MapPath("webs.xml"));
		Session\["Webs"\] = null;
		XmlDataGrid.EditItemIndex = -1;
		XmlDataGrid.DataSource = LoadWebs();
		XmlDataGrid.DataBind();
	}

	protected void DEDR_Add(object sender, EventArgs e)
	{
		DataSet dataSet = LoadWebs();
		DataRow newRow;
		newRow = dataSet.Tables\[0\].NewRow(); 
		newRow\["Responsible"\] = "";
		newRow\["Name"\] = "";
		newRow\["LastName"\] = "";
		newRow\["Email"\] = "";
		newRow\["Company"\] = "";
		newRow\["Contact"\] = "";
		dataSet.Tables\[0\].Rows.InsertAt(newRow,0);  //ändra för var informuläret ska hamna, nu hamnar det högst upp i tabellen
		dataSet.WriteXml(Server.MapPath("webs.xml"));
		Session\["Webs"\] = null;
		XmlDataGrid.DataSource = LoadWebs();
		XmlDataGrid.DataBind();
		Session\["Webs"\] = null;
		XmlDataGrid.EditItemIndex = 0;//WebData.Items.Count - 1;
		XmlDataGrid.DataSource = LoadWebs();
		XmlDataGrid.DataBind();
	}

	\#region Web Form Designer generated code
	override protected void OnInit(EventArgs e)
	{
		//
		// CODEGEN: This call is required by the ASP.NET Web Form Designer.
		//
		InitializeComponent();
		base.OnInit(e);
	}
	
	/// \<summary\>
	/// Required method for Designer support - do not modify
	/// the contents of this method with the code editor.
	/// \</summary\>
	private void InitializeComponent()
	{    
		this.XmlDataGrid.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.XmlDataGrid_SortCommand);
		this.XmlDataGrid.SelectedIndexChanged += new System.EventHandler(this.XmlDataGrid_SelectedIndexChanged);
		this.Load += new System.EventHandler(this.Page_Load);

	}
	\#endregion

	protected void XmlDataGrid_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
	{
		XmlDataGrid.CurrentPageIndex = 0;
		SortField = e.SortExpression;	//get the requested sorting field name and set it to SortField
		BindGrid();
	}

	protected DataSet LoadWebs()
	{
		string sourceXml = Server.MapPath("webs.xml");
		if (!(File.Exists(sourceXml)))
		{
			return null;
		}
		DataSet cachedDataSet = (DataSet)Session\["Webs"\];
		if (!(cachedDataSet == null))
		{
			return cachedDataSet;
		}
		DataSet dataSet = new DataSet();
		try
		{ 
			dataSet.ReadXml(sourceXml);
			Session\["Webs"\] = dataSet;
		}
		catch (Exception e)
		{
			ErrorMessage.Text = e.Message;
			dataSet = null;
		}
		return dataSet;
	}

	private void XmlDataGrid_SelectedIndexChanged(object sender, System.EventArgs e)
	{
	
	}

}

}****

Medlem sedan mars 20023 561 inlägg
#4

Använd gärna [kod]-taggarna när du postar kod, så blir det lättare att läsa och urskilja den från resten av inlägget.

Medlem sedan apr. 2003234 inlägg
#5

hur gör jag det?

Medlem sedan dec. 19996 522 inlägg
#6

Skriver först kod inom [ ] sedan /kod inom [ ]

Medlem sedan apr. 2003234 inlägg
#7

okey gör det nästa gång, någon som förstår mitt problem

Medlem sedan apr. 2003234 inlägg
#8

string inputText = ((TextBox)list.Items sedan ska det skrivas något efter vad det nya fältet heter håller på att leta efter det i debugläget men hittar inte den, inte lätt

Medlem sedan apr. 2003234 inlägg
#9

har nu kodat så här

string inputText = (list.Items[0].Controls[0].Controls[0].ToString()); får du ut något konstigt i den gamla tabellen vill ha det i den nya bara:)

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)