[ almisa @ 04.08.2007. 15:31 ] @
Kako da klikom na link otvorim novu stranicu u kojoj se prikazuje slika pomocu
Response.Redirect("~/Slike.aspx?Id=" + strIdSlike) ;

Imam GridView kontrolu na strani proizvodi.apsx. Kontrola je povezana sa bazom i cita podatke o proizvodima. Jedno polje u kontroli je ImageFild cije DataImageUrlField vuce vrednost iz baze u kojoj je upisana putanja slike. Kako da napravim da slika bude link koji kad se klikne otvara sliku u nov prozor.

Ja sam probao preko dugmeta koje sam dodao u GridView kontrolu i podesio CommandName a zatim u dogadjaju za tu komandu probao preko Response.Redirect-a da otvorim novu stranu u kojoj se prikazuje slika u punoj velicini. Problem je sto ne mogu da podesim da otvara u nov prozor.
[ spartak @ 04.08.2007. 20:28 ] @
Ne radi se tako. Novi prozor otvaras javascript a kao url tog novog prozora posaljes taj na koji si zeleo da uradis redirect.
[ bjevta @ 05.08.2007. 08:52 ] @
A, može i ovako:

U grid stavi template kolonu sa System.Web.UI.WebControls.HyperLink kontrolom (myLink, na primer). Podesi target hyperlink-a na _blank.

U kodu, na RowCreated event data grida, e.Row.RowType == DataControlRowType.DataRow:
HyperLink myLink = (HyperLink)e.Row.FindControl("myLink");
myLink.NavigateUrl = "MyNewWindo.aspx?imageId=" + imageId.ToString();

To bi bilo sve.

[ almisa @ 05.08.2007. 13:17 ] @
Bjevta ne zelim da imam link uvelicaj (recimo), pored svake slike u GridView. To mi se ne svidja. Hteo bih da slika bude link tako da kada kliknem na nju da se otvori u nov prozor u punoj velicini. Probao bih preko JavaScript-a to da uradim ali ne znam kako i gde da pozovem funkciju JavaScripta i koje parametre da joj prosledim.

Ono sto si pisao preko linka moze da se uradi mnogo jednostavnije. U GridView stavi HyperLinkField i u properti podesi za to polje sledece:

DataNavigateUrlField = IDSlike
DataNavigateUrlFormatString = Slike.aspx?IDSlike={0}
[ almisa @ 06.08.2007. 14:34 ] @
Zna li neko?
[ dusty @ 06.08.2007. 15:14 ] @
Dodaj u Image element atribut u stilu:
Code:
onclick='window.open("<%# DataBinder.Eval(Container, "DataItem.Putanja_Do_Slike")%>", "", "titlebar=no,scrollbars=0"); return false;'


Mada ja ne bih koristio uopste Image element, vec cist HTML: <a onClick><img></a>

[ almisa @ 06.08.2007. 16:48 ] @
dusty problem mi je sto ne znam gde da stavim onclick.
Imam GridView kontrolu u kojoj mi se pojavljuju samo slike koje se citaju iz polja URLSlike iz baze
(u tom polju nalazi se putanja slike)
Code:

<asp:GridView ID="grvSlike" runat="server" AllowPaging="True" AutoGenerateColumns="False"
    DataKeyNames="IDSlike" DataSourceID="AccessDataSourceSlike" GridLines="None" PageSize="4" CellSpacing="10" 
         OnRowCommand="grvSlike_RowCommand">
    <Columns>
        <asp:ImageField DataImageUrlField="URLSlike">
           <ControlStyle Height="128px" Width="128px" />
        </asp:ImageField>
            <asp:BoundField DataField="IDSlike" HeaderText="IDSlike" InsertVisible="False" ReadOnly="True"
                SortExpression="IDSlike" Visible="False" />
            <asp:BoundField DataField="URLSlike" HeaderText="URLSlike" SortExpression="URLSlike" Visible="False" />
            <asp:ButtonField ButtonType="Image" CommandName="UvelicajSliku" ImageUrl="~/images/Lupa.png" />
     </Columns>
     <PagerStyle ForeColor="#336699" />
</asp:GridView>


Hteo bih da kada kliknem na sliku da se ona otvori u nov prozor u punoj velicini, ali ne znam gde da stavim onclick.
[ dusty @ 07.08.2007. 08:35 ] @
Konvertuj to polje u template field preko vizarda u kojem si dodavao polja. ImageField ce biti zamenjen sa TemplateField elementom i dva noda: EditTemplate i ItemTemplate. Ako nisi nameravao da se nesto edituje, slobodno obrisi EditTemplate (vidim da si stavio readOnly na true). U itemTemplate imaces asp:Image element, u njega dodaj ovaj atribut onClick.
I dalje ti preporucujem da zamenis Image server side kontrolu sa obicnim HTML-om cije atribute ces da bindujes.
[ almisa @ 07.08.2007. 12:49 ] @
dusty u itemTemplate asp:Image element ne prihvata dogadjaj onclick. Zato sam stavio link i obicnu html image kontrolu.

Code:

<asp:GridView ID="grvSlike" runat="server" AllowPaging="True" AutoGenerateColumns="False"
  DataKeyNames="IDSlike" DataSourceID="AccessDataSourceSlike" GridLines="None" PageSize="4"
     CellSpacing="10" OnRowCommand="grvSlike_RowCommand">
  <Columns>
    <asp:TemplateField>
        <ItemTemplate>
           <a class="SlikaLink" href="#"  
        onclick='window.open("<%# DataBinder.Eval(Container, "DataItem.URLSlike")%>", "",
         "titlebar=no,scrollbars=0"); return false;'>
             <img id="imgSlika" border="0" src="<%#  Eval("URLSlike") %>"  width="128" height="128" />
           </a>
        </ItemTemplate>
        </asp:TemplateField>
          <asp:BoundField DataField="IDSlike" HeaderText="IDSlike" InsertVisible="False" ReadOnly="True"
             SortExpression="IDSlike" Visible="False" />
          <asp:BoundField DataField="IDNekretnine" HeaderText="IDNekretnine" SortExpression="IDNekretnine" Visible="False" />
          <asp:BoundField DataField="URLSlike" HeaderText="URLSlike" SortExpression="URLSlike" Visible="False" />                                    
  </Columns>
  <PagerStyle ForeColor="#336699" />
</asp:GridView>


Probao sam ovo i radi. Problem mi je sto src="<%# Eval("URLSlike") %>" treba da vrati vrednost ~/Slike/sl1.jpg jer je tako upisano u bazi. Medjutim s obzirom da se stranica nalazi u pod folderu Pregled (MojSajt/Pregled/PregledSlika.aspx)
dobijem kao reziltat putanju za sliku src="MojSajt/Pregled/~/Slike/sl1.jpg" sto nije ispravno i ne prikazuje mi sliku. Probao sam da stavim i ResolveClientUrl ali mi je javljao sintaksnu gresku.
Znas li kako ovo mogu da resim?
[ dusty @ 07.08.2007. 13:23 ] @
Citat:
dusty u itemTemplate asp:Image element ne prihvata dogadjaj onclick

Moze, moze, ne veruj intellisens-u, trust your instincts young Jedi Malopre probao, i sem prituzbi da nije ispravan atribut nisam imao nikakvih drugih problema.
Citat:
src="<%# Eval("URLSlike") %>"

A folder '~' ti je root web aplikacije ? Da probas src="..\..\<%# Eval("URLSlike") %>".
Reci, koja je putanja iz root-a do slika, a koja do aspx stranica ? Cudno da ne radi ResolveClientUrl ?!
[ almisa @ 07.08.2007. 15:03 ] @
Nasao sam u cemu je bio problem. Umesto ..\ stavio sam ../ i bilo je sve ok.
U bazi sam stavio da u polje UrlSlike upisuje samo ime slike (slika1.jpg) a s obzirom da sam slike pozivao iz pod foldera koristio sam ../Slike/

Code:

<a href="#" class="SlikaLink" onclick='window.open("../Slike/<%# DataBinder.Eval(Container, "DataItem.URLSlike")%>", "", "titlebar=0,scrollbars=0,width=800,height=600,resizable=1"); return false;'>
<img id="imgSlika" border="0" src="../Slike/<%# (Eval("URLSlike")) %>"  width="128" height="128" />
</a>


Hvala puno. Pozdrav.


[Ovu poruku je menjao almisa dana 07.08.2007. u 17:55 GMT+1]