webForumDet fria alternativet

Ska ej köra funktionen igen

.NET

0 svar · 188 visningar · startad av wwwstekaren

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

Jag har ett formulär som ligger i en datagrid där man fyller i en person, finns en person med samma för och efternamn så kommer de som finns i en lista och den nya i en lista under. Detta funkar jätte bra, men när jag går tillbaka till listan och ska edditera en som redan är inlagd och sedan trycker på update så körs kontrollen för att kolla för och eftenamn, hur kan jag lösa detta så att kontrollen ej körs när jag ska edditer en person, kontrollen ska bara köras när jag lägger till en ny person som ej finns i listan.

Kod för min kontroll:

protected void DEDR_Update(object sender, DataGridCommandEventArgs e)
		{
			DataSet dataSet = LoadWebs();

			string CheckResponsible = ((TextBox)e.Item.FindControl("txtResponsible")).Text;
			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")).SelectedIndex.ToString();
			string Check = CheckName + CheckLastName /*+ CheckEmail*/;

			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[i]["Name"].ToString() + completeTable.Rows[i]["LastName"].ToString()  /*+ completeTable.Rows[i]["Email"].ToString()*/ == Check)
				{
					found = true;
					
					duplicateTable.ImportRow(completeTable.Rows[i]);

					//NewContactList
									
					Response.Write("Följande person finns redan");
				}
		
			}

			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.WriteXml(Server.MapPath("webs.xml"));
				Session["Webs"] = null;
				XmlDataGrid.EditItemIndex = -1;
			}
			if(found)
			{
				DataGridContactNew.Visible = true;
				list.Visible = true;

				DataTable newContactTable = new DataTable();
				foreach(DataColumn col in completeTable.Columns)
					newContactTable.Columns.Add(new DataColumn(col.ColumnName, col.DataType));

				newcontactLabel.Text="Den personen som du försöker lägga till finns redan med samma för och efternamn i lista";
				
				DataRow newRow = newContactTable.NewRow();
				newRow["Responsible"] = CheckResponsible;
				newRow["Name"] = CheckName;
				newRow["LastName"] = CheckLastName;
				newRow["Email"] = CheckEmail;
				newRow["Company"] = CheckCompany;
				newRow["Contact"] = CheckContact;
				
				newContactTable.Rows.Add(newRow);		

				DataGridContactNew.DataSource = newContactTable;
				DataGridContactNew.DataBind();

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

			
			XmlDataGrid.DataSource = LoadWebs();
			XmlDataGrid.DataBind();
		}
284 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
151 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
158 ms — ändringar (db)