webForumDet fria alternativet

Fylla div utan att ladda om sidan.

.NET

5 svar · 355 visningar · startad av jazzil

Medlem sedan maj 2003151 inlägg
Frågan#1

Jag visste inte riktigt hur jag skulle formulera min topic!

Hej jag har lite problem (igen :D).
kolla här: ttp://mekk.mine.nu/aspnet/adresser/
Logga in som:
kim
kim

Som ni ser så har jag ett lager med grupper och ett med personerna i gruppen. Det jag har en massa personer i min databas som ligger i gruppen "Arbetet" t.ex. (siffrorna som står på höger sida stämmer)
Jag kommer inte på något bra sätt att få ut dom i mitt lager utan att använda frames eller ladda om sidan.
Jag vet att det blir en del javascript också men det fixar jag. Jag undrar hur jag först loopar ut alla grupp namn som variabler
typ:
var Arbete = "Här loppas alla personerna,johan,olof";
hur gör man det när de ligger i olika tabeller i databasen?

Ni behöver absolut inte ge mig hela lösningar men jag har ingen aning hur jag ska göra så en push hade inte varit fel.

Relevant JavaScript.

var GSatt = 0;
var GNString = "";
var GCString = "";

function OnGroupClick(id, color)
{
	var target = document.getElementById(id);
	if (GSatt == 0)
	{
		target.style.background = "#7C93CA";
		GSatt = 1;
		GNString = id;
		GCString = color;
		document.getElementById("PersonText").style.visibility = "visible";
		document.getElementById("AddressBox").style.visibility = "visible";
	}
	else if (GNString == id)
	{
		target.style.background = "#" + GCString;
		GSatt = 0;
		GNString = "";
		GCString = "";
		EmptyDiv();
		document.getElementById("PersonText").style.visibility = "hidden";
		document.getElementById("AddressBox").style.visibility = "hidden";
	}
	else
	{
		var ABox = document.getElementById(GNString);
		ABox.style.background = "#" + GCString;
		EmptyDiv();
		target.style.background = "#7C93CA";
		GSatt = 1;
		GNString = id;
		GCString = color;
		document.getElementById("PersonText").style.visibility = "visible";
		document.getElementById("AddressBox").style.visibility = "visible";
	}
}

function FillDiv(id, color, namn)
{
	var html = "<div id=\""+id+"\" class=\"Gtd\" OnClick=\"OnPeopleClick(this.id, \'"+color+"\');\"  OnMouseOver=\"OnPeopleMouseOver(this.id);\" OnMouseOut=\"OnPeopleMouseOut(this.id,\'"+color+"\');\"  style=\"background:  #"+color+";\" >"+namn+"</div>";
	document.getElementById("AddressBox").innerHTML += html;
}

Och lite asp/c#

	<div id="Gb<%# DataBinder.Eval(Container.DataItem, "id") %>" class="Gtd" 
	onClick="OnGroupClick(this.id, 'F8F8F8');"  
	OnMouseOver="OnGroupMouseOver(this.id);" 
	OnMouseOut="OnGroupMouseOut(this.id, 'F8F8F8');"  
	style="background:  #F8F8F8;" >
	<%# DataBinder.Eval(Container.DataItem, "group_name") %>(<%# count(Convert.ToInt32(DataBinder.Eval(Container.DataItem, "id"))) %>)
	</div>
#---------------------------------------------------------------------------#
		public static DataSet GetUserGroups(string name)
		{
			SqlConnection SqlCon = new SqlConnection(ConString);
			string SqlQuery = "SELECT tbl_groups.*, tbl_users.id, tbl_users.name FROM tbl_groups INNER JOIN tbl_users ON tbl_groups.user_id=tbl_users.id WHERE tbl_users.name ='"+name+"';";
			DataSet Sender = new DataSet();		
			SqlDataAdapter SqlCom = new SqlDataAdapter(SqlQuery, SqlCon);
			SqlCom.Fill(Sender);
			SqlCon.Close();
			return Sender;
		}
Medlem sedan apr. 20012 266 inlägg
#2

Re: Fylla div utan att ladda om sidan.

jazzil skrev:

J
var Arbete = "Här loppas alla personerna,johan,olof";
hur gör man det när de ligger i olika tabeller i databasen?

Union är smidigt att använda när man ska sammanställa data från olika tabeller, läs mer i din närmsta sql handbok.

Medlem sedan juni 2000126 inlägg
#3

Hej,

ett sätt skulle kunna vara att du bygger en webservice som returenerar den data som du efterfrågar från din databas.
Denna webservice kallar du från ett Javacsript och bygger sen din html mha javascriptet och skriver ut i din div.

Ref:
http://www.c-sharpcorner.com/Code/2002/May/HTMLClient4WebServices.asp
och
http://searchwebservices.techtarget.com/ateQuestionNResponse/0,289625,sid26_cid578279_tax292065,00.html

Medlem sedan aug. 20003 575 inlägg
#4

Man kan använda en iframe i diven :)

Medlem sedan maj 2003151 inlägg
#5

Jag ska kolla på både Union och webservices ...
men jag har inte hittat så mycket om union.

iframe däremot är min absoluta nödlösning.

Medlem sedan nov. 20022 355 inlägg
#6

Web Services är kanske inte att föredra om det är data som ingen bör kunna komma åt, isf måste du verifiera användaren som vill åt data från Web Service'n

392 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
125 ms — hämta statistik (db)
134 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)