Skal lige sige at jeg koder delphi.net, men aspx filens .net kode skal skrives i c#.
Nu er jeg ikke på arbejdet nu, så kan ikke gengive mere kode før imorgen.
Det jeg gør er at ligge et database udtræk ned i et dataset, og derefter sætter jeg datasource på min repeater til mit dataset, og kalder databind på min repeater.
Så kan jeg i min aspx fil hente data fra mit dataset ud med <%#DataBinder.Eval(Container.DataItem, "SYNLIG")%>
Har ikke haft held med at skrive denne linje på nogen som helst andre måder... Der kommer fejl på siden hvis jeg skriver det anderledes.. Kan desvære ikke gengive fejlen her heller før imorgen.
Ok - jeg har prøvet det på en tabel som jeg henter ind i en SqlDataSource som jeg så binder til en repeater, og det funker - i VisualStudio 2005, .net 2.
ok, nu kommer der noget kode... Husk det er delphi.net..
//Her henter jeg data til repeateren, og binder det.. Virker fint.. procedure TWebLinks.fillRepeater; var sql: string; firebird: FBconn; FBComm: FbCommand; FBReader: FbDataReader; sda: FbDataAdapter; ds: DataSet; begin sql := 'SELECT ' + '...'; //Har fjernet mit sql statement, da det er langt..
firebird := FBConn.Create; firebird.connect(database); //Har en unit der lavet connection... sda := FbDataAdapter.Create; sda.SelectCommand := FbCommand.Create(sql, firebird.conn, firebird.trans); ds := DataSet.Create; sda.Fill(ds); ds.Tables[0].TableName := 'WEB_LINKS'; Repeater1.DataSource := ds.Tables['WEB_LINKS']; Repeater1.DataBind; end;
Feltet SYNLIG i databasen er et 1/0 felt, og jeg vil gerne have min tjekboks på siden til at være checked/not checked afhængig af data i SYNLIG feltet.
hvis jeg prøver med ovenstående kode: "Checked='<%# Eval("MyBooleanVariable") %>'"
kommer følgende fejl: CS0103: Navnet 'Eval' findes ikke i klassen eller navneområdet 'ASP.links_ascx'
Denne linje har jeg tilgengæld stående ovenover: "<%#DataBinder.Eval(Container.DataItem, "RETTET")%>"
og det VIRKER... Det udskriver bare en string med en dato...
{$REGION 'Designer Managed Code'} /// <summary> /// Required method for Designer support -- do not modify /// the contents of this method with the code editor. /// </summary>
procedure TWebLinks.Page_Load(sender: System.object; e: System.EventArgs); begin if (not IsPostBack) then fillRepeater; end;
procedure TWebLinks.OnInit(e: System.EventArgs); begin // // Required for Designer support // InitializeComponent; inherited OnInit(e); end;
procedure TWebLinks.Repeater1_ItemDataBound(sender: System.object; e: System.Web.UI.WebControls.RepeaterItemEventArgs); begin if ((e.Item.ItemType = ListItemType.Item)) then begin (e.Item.FindControl('idEven') as TextBox).Text := DataBinder.Eval(e.Item.DataItem, 'L_ID').ToString; (e.Item.FindControl('kaldenavnEven') as Literal).Text := DataBinder.Eval(e.Item.DataItem, 'KALDENAVN').ToString; if ((DataBinder.Eval(e.Item.DataItem, 'SYNLIG').ToString) = '1') then (e.Item.FindControl('chkSynligEven') as checkBox).Checked := true else (e.Item.FindControl('chkSynligEven') as checkBox).Checked := false; (e.Item.FindControl('linkEven') as TextBox).text := DataBinder.Eval(e.Item.DataItem, 'LINK').ToString; (e.Item.FindControl('titelEven') as TextBox).text := DataBinder.Eval(e.Item.DataItem, 'TITEL').ToString; (e.Item.FindControl('btnSletEven') as button).CommandArgument := DataBinder.Eval(e.Item.DataItem, 'L_ID').ToString; end;
if ((e.Item.ItemType = ListItemType.AlternatingItem)) then begin (e.Item.FindControl('idOdd') as TextBox).Text := DataBinder.Eval(e.Item.DataItem, 'L_ID').ToString; (e.Item.FindControl('kaldenavnOdd') as Literal).Text := DataBinder.Eval(e.Item.DataItem, 'KALDENAVN').ToString; if ((DataBinder.Eval(e.Item.DataItem, 'SYNLIG').ToString) = '1') then (e.Item.FindControl('chkSynligOdd') as checkBox).Checked := true else (e.Item.FindControl('chkSynligOdd') as checkBox).Checked := false; (e.Item.FindControl('linkOdd') as TextBox).text := DataBinder.Eval(e.Item.DataItem, 'LINK').ToString; (e.Item.FindControl('titelOdd') as TextBox).text := DataBinder.Eval(e.Item.DataItem, 'TITEL').ToString; (e.Item.FindControl('btnSletOdd') as button).CommandArgument := DataBinder.Eval(e.Item.DataItem, 'L_ID').ToString; end; end;
procedure TWebLinks.sletLink(id: string); var sql: string; firebird: FBconn; FBComm: FbCommand; begin sql := 'DELETE FROM WEB_LINKS ' + 'WHERE ID=' + id;
procedure TWebLinks.chkSynlig_CheckChanged(sender: System.object; e: System.EventArgs); var sql: string; firebird: FBconn; FBComm: FbCommand; synlig, id: string; chkBox: CheckBox; chkCurrent: CheckBox; i: integer; begin if (Sender is CheckBox) then begin if (Sender as checkBox).Checked then synlig := '1' else synlig := '0';
chkBox := (Sender as checkBox); for I := 0 to Repeater1.Items.Count - 1 do begin chkCurrent := (Repeater1.Items[i].Findcontrol('chkSynligEven') as checkBox); if (chkBox.Equals(chkCurrent)) then begin id := (Repeater1.Items[i].Findcontrol('idEven') as textbox).Text; break; end else chkCurrent := (Repeater1.Items[i].Findcontrol('chkSynligOdd') as checkBox); if (chkBox.Equals(chkCurrent)) then begin id := (Repeater1.Items[i].Findcontrol('idOdd') as textbox).Text; break; end end;
procedure TWebLinks.txtLinkChanged(sender: System.object; e: System.EventArgs); var sql: string; firebird: FBconn; FBComm: FbCommand; link, id: string; txtBox: TextBox; txtCurrent: TextBox; i: integer; begin if (Sender is TextBox) then begin txtBox := (Sender as TextBox); link := Server.HtmlEncode(txtBox.Text); for I := 0 to Repeater1.Items.Count - 1 do begin txtCurrent := (Repeater1.Items[i].Findcontrol('linkEven') as TextBox); if (txtBox.Equals(txtCurrent)) then begin id := (Repeater1.Items[i].Findcontrol('idEven') as textbox).Text; break; end else txtCurrent := (Repeater1.Items[i].Findcontrol('linkOdd') as TextBox); if (txtBox.Equals(txtCurrent)) then begin id := (Repeater1.Items[i].Findcontrol('idOdd') as textbox).Text; break; end end;
procedure TWebLinks.txtTitelChanged(sender: TObject; e: System.EventArgs); var sql: string; firebird: FBconn; FBComm: FbCommand; titel, id: string; txtBox: TextBox; txtCurrent: TextBox; i: integer; begin if (Sender is TextBox) then begin txtBox := (Sender as TextBox); titel := Server.HtmlEncode(txtBox.Text); for I := 0 to Repeater1.Items.Count - 1 do begin txtCurrent := (Repeater1.Items[i].Findcontrol('titelEven') as TextBox); if (txtBox.Equals(txtCurrent)) then begin id := (Repeater1.Items[i].Findcontrol('idEven') as textbox).Text; break; end else txtCurrent := (Repeater1.Items[i].Findcontrol('titelOdd') as TextBox); if (txtBox.Equals(txtCurrent)) then begin id := (Repeater1.Items[i].Findcontrol('idOdd') as textbox).Text; break; end end;
procedure TWebLinks.Repeater1_ItemCommand(source: System.object; e: System.Web.UI.WebControls.RepeaterCommandEventArgs); begin if (e.CommandName.ToString = 'comBtnSlet') then sletLink(e.CommandArgument.ToString); end;
procedure TWebLinks.btnNy_Click(sender: System.object; e: System.EventArgs); var sql: string; firebird: FBconn; FBComm: FbCommand; begin sql := 'INSERT INTO WEB_LINKS (SYNLIG, BRUGER) ' + 'VALUES (0, ' + TWebDefault.userID + ')';
Det er bare iorden.. :) Kan ikke forvente at folk ligefrem står på spring for at hjælpe.. :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.