webForumDet fria alternativet

contextmenu

5 svar · 373 visningar · startad av maqe

maqeMedlem sedan dec. 2003824 inlägg
#1

Jag vill öppna en contextmenu för varje menyval i min datalist och få en länk som skickar upp en dialog med egenskaper om länken, t.ex. länknamn, publicera [ja/nej] mm ... jag har bundit oncontextmenu till en funktion i javascript som visar och döljer en div dom innehåller en linkbutton med commandname="edit" ...
mitt problem är att vilket menyval jag än klickar på så blir länken i min linkbutton javascript:__doPostBack('MenuDataList$_ctl0$edit',") ... med andra ord öppnar den alltid länken till ctl0 oavsett vilken jag högerklickar på ... hur kan man lösa så att när jag högerklickar på ctl0 så visas divven med javascript:__doPostBack('MenuDataList$_ctl0$edit',") och när jag högerklickar på ctl1 så visas divven med javascript:__doPostBack('MenuDataList$_ctl1$edit',") osv ... väldigt tacksam för svar ...

JonMedlem sedan juli 20011 126 inlägg
#2

Om du postar lite kod så blir det lättare att se hur du gör och hur man kan lösa det hela :)

maqeMedlem sedan dec. 2003824 inlägg
#3

Jag löste det på ett annat sätt men jag undrar dock om man på nått sätt kan använda sig av windows inbyggda högerlicksmeny i asp.net eller om jag måste använda mig av divvar?

NETworkMedlem sedan juni 20011 679 inlägg
#4

Nej, den kan du inte använda i en webbapplikation, utan du får göra något eget med dhtml, javascript eller liknande.

JonMedlem sedan juli 20011 126 inlägg
#5

Om du inte känner dig väldigt hemlig får du gärna lägga ut koden eller lösningen så andra kan lära sig! :)

maqeMedlem sedan dec. 2003824 inlägg
#6

Jon skrev:

Om du inte känner dig väldigt hemlig får du gärna lägga ut koden eller lösningen så andra kan lära sig! :)

Vad hag ville åstadkomma var som sagt en egen contextmeny för varje länk i min menydatalist och sedan skicka upp ett modalt dialogfönster som skulle kommunicera med huvudsidan så jag kunde ändra t.ex. länknamn, tooltips och även om länken skulle visas på huvudsidan eller inte via en dropdownlist. Nu kom jag inte på en bra lösning på det så jag gjorde såhär istället.

först fixade jag så att jag vid högerklick skickar med menyid till mitt javascript som slänger upp dialogen ... här är koden för det:

Private Sub MenyDataList_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles MenuDatalist.ItemDataBound

Try
  Dim NavLink As HyperLink = CType(e.Item.FindControl("menulink"), HyperLink)
  Dim LinkId As String = NavLink.Text.ToString
  NavLink.Attributes.Add("oncontextmenu", "myContextFunc('" & LinkId & "');")

Catch

End Try

End Sub

och javascriptet som jag kör då kommer här...

var myMenuId;

function myContextFunc(LinkId) {
myMenuId = LinkId;
whichDiv=event.srcElement;
myContextmenu.style.posLeft=event.clientX+document.body.scrollLeft;
myContextmenu.style.posTop=event.clientY+document.body.scrollTop;
myContextmenu.style.display="";

}

sen har jag en linkbutton i min contextmenu som skickar upp dialogen såhär...

function ShowProperties() {

myContextmenu.style.display="none";
var strReturn
strReturn = window.showModalDialog("../popups/properties.aspx?id=" + myMenuId, "null", "resizable:no;help:no;status:no;scroll:no;");

}

med andra ord skickar jag med meny id´t som en querystring till dialogen och hämtar sedan värdena från databasen och fyller min dialog med dom, sedan har jag tänkt skriva dom nya värdena direkt ifrån dialogen och hopppas på att mitt parent fönster gör en refresh när dialogen släcks.

Kom gärna med synpunkter på mitt sätt att lösa det eller om ni har en bättre lösning...

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb