PASS-Werte auf Standard Newform.aspx
-
09-12-2019 - |
Frage
Ich muss Werte aus meiner List-Ansicht (Kalender) an den Standard-Newform.aspx übergeben.Wenn Sie eigentlich wissen, können Sie an einem Tag in der Kalenderansicht auf die Schaltfläche "Hinzufügen" klicken.Dann wird der Tag automatisch ausgewählt.Was ich will, ist ein bisschen dasselbe.Ich möchte den Namen der Ansicht erhalten (es gibt ungefähr 20 ...), geben Sie dies an den NewForm.aspx an und wählen Sie einen Wert aus einem Combobox.Wer weiß das, wie man das macht?
Ich möchte nicht jede Ansicht ändern, um einen JS / JQuery-Code hinzuzufügen.Also, wenn möglich nur die newform.aspx-Seite ändern.
Lösung
I've solved it by storing values within my cookie:
General script (added on masterpage):
function GetMeetingRoomPage()
{
if (document.URL.indexOf('/sites/meetingrooms/Lists/Reservations/') >= 0)//Check if correct URL
{
var meetingRoomViewControl = "<id or class view>";
if (jQuery(meetingRoomViewControl).length)//Check if control exists
{
setCookie("meetingRoomView", jQuery(meetingRoomViewControl).html(), "1");
}
}
else
{
setCookie("meetingRoomView", "", "1");
}
}
function setCookie(c_name, value, exdays)
{
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
document.cookie = c_name + "=" + c_value;
}
function getCookie(c_name)
{
var i, x, y, ARRcookies = document.cookie.split(";");
for (i = 0; i < ARRcookies.length; i++)
{
x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
x = x.replace(/^\s+|\s+$/g, "");
if (x == c_name)
{
return unescape(y);
}
}
}
Script within my newpage.aspx
ExecuteOrDelayUntilScriptLoaded(procAuditArgs, "sp.js");
function procAuditArgs(){
var meetingRoomView = getCookie("meetingRoomView");
if(meetingRoomView != "")
{
var meetingRoomControl = "<id or class combobox>";
jQuery(meetingRoomControl + " option").each(function()
{
if(jQuery(this).text().indexOf(meetingRoomView) >= 0)
{
jQuery(this).attr("selected","selected");
}
});
}
}