[ gogi100 @ 09.05.2015. 21:02 ] @
Imame na sharepoint-u biblioteku koja cuva dokumenta. hocu da kreirali dugme za kopiranje fajlova iz jedne biblioteke u drugu. Za te svrhe sam u visual studio kreirao aspx application page na kojoj se nalazi treeview kontrola, preko koje biram lokaciju gde cu kopirati fajlove. Hocu da sa strane gde sam selektivno fajlove za kopiranje proslediti preko query stringa parametre tih fajlova koji ce mi omoguciti da na application page izvrsiti kopiranje tih fajlova na odabranoj lokaciji. Ko je paramparametre proslediti i kako? Ja sam pokušao preko query string da prosledim id dokumenta i uspelo mi je, ali ne znam koji parametar treba jos proslediti da bih uspeo da kapiram fajlove?
[ S A J A @ 10.05.2015. 10:27 ] @
Da bi kopirao fajl treba ti 2 parametra, fajl i destinacija. Znači to treba da proslediš strani na kojoj se nalazi funkcija za kopiranje. File putanje ćeš malo teže da staviš u query string, probaj sa UrlEncode i UrlDecode.
[ dusans @ 10.05.2015. 10:35 ] @
Obrati pažnju da query string ima ograničenje dužine, obično nekoliko kilobajta.
Što znači da ako hoćeš preko query stringa, onda možeš samo 1 po 1 ili nekoliko po nekoliko fajlova.
Ako hoćeš sve fajlove odjednom, onda moraš da radiš POST podataka na tvoju stranicu.
[ gogi100 @ 10.05.2015. 20:35 ] @
Na strani gde treba da mi bude funkcija za kopiranje, moja application page imam promenljivu gde sam joj dodelio putanju odredišta. Znači potrebno mi je samo prosledjivanje fajlova. meni je potrebno da pošaljem fajlove koje izaberem. Može li mi ko dati uputstvo kako se radi post podataka, ili kako koristiti urlencode? Ja sam uspeo preko query string da pošaljem id dokumenata, više njih istovremeno i id bibljoteke. Da li se ovi parametri mogu iskoristiti i kako ako mogu? Hvala
[ dusans @ 10.05.2015. 22:34 ] @
Šta znači "meni je potrebno da pošaljem fajlove koje izaberem"?
Da li hoćeš da pošalješ tvojoj stranici:
1. LISTU PUTANJA DO FAJLOVA (npr. D:\Test\Document01.docx, D:\Test\Madonna.jpg)
ili
2. SAM SADRŽAJ FAJLOVA (cele fajlove)
Koji od ova 2 ili oba???
[ gogi100 @ 11.05.2015. 12:07 ] @
fajlove, da bih mogao da ih kopiram na neku lokaciju, koju sam izabrao na application page. kad sam rekao putanju, mozda je dovoljno poslati URL tih fajlova da bih obavio kopiranje tih fajlova.
[ S A J A @ 11.05.2015. 16:41 ] @
Imaš razne načine kako da prebacuješ podatke između strana (query string, session objekat, web cache, cookies...)
Pogledaj ovaj tekst: http://www.codeguru.com/column...a-between-pages-in-asp.net.htm

[ gogi100 @ 15.05.2015. 12:18 ] @
ja sam u mom ribbon dugmetu u command handler-u stavio sledeci kod

<code><CommandUIHandler
Command="Ribbon.Custom.Button.Script1"
CommandAction="javascript:function demoCallback(dialogResult, returnValue)
{
SP.UI.Notify.addNotification('Uspešna operacija!');

SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);
}

var ctx = SP.ClientContext.get_current();
var items = SP.ListOperation.Selection.getSelectedItems(ctx);
var myItems = '';
var k;

for (k in items)
{
myItems += items[k].id;

ctx.load(myItems);
var file = myItems.get_file();
ctx.load(file);
ctx.executeQueryAsync(
function (sender, args) {
if (file != null) {
alert(file.name);
}
},
function (sender, args){
alert('niste izabrali nijedan fajl');
});
}

var options = {
url: '/_layouts/RibbonCopyMove/CopyMovePage.aspx?items=' + myItems + '&amp;source=' + SP.ListOperation.Selection.getSelectedList(),
tite: 'Move Documents',
allowMaximize: false,
showClose: true,
width: 600,
height: 500,
dialogReturnValueCallback: demoCallback };

SP.UI.ModalDialog.showModalDialog(options);" /></code>

ovim kodom ja dobijam id-eve izabranih dokumenata i id bibljoteke. ja ne znam kako da ih iskoristim na application page, pa sam mislio da na osnovu ovih id-eva dobijem imena dokumenata i kreiram url-ove, a onda njih prosledim na application page.
mozes li mi reci kako da dobijem ime na osnovu id dokumenta, ili kako vec prosledjene id-ove da iskoristim na application page za kopiranje fajlova. na netu sam nasao da mi je za to potrebna url dokumenta sa njegovim imenom i odredisna adresa gde ce dokument biti kopiran

hvala
[ gogi100 @ 19.05.2015. 08:31 ] @
nasao sam resenje koje mi nalazi adresu izabranog dokumenta i prosledjuje ga na application page. Medjutim, meni je potrebno da se izvrsi prosledjivanje svih selektovanih dokumenata. Otprilike kako kapiram potrebno je sve adrese povezati u neku string promenljivu i nju proslediti. Kako to uraditi? Ovo je kod

<CommandUIHandler EnabledScript="javascript:SP.ListOperation.Selection.getSelectedItems().length >= 1;"
Command="Ribbon.Custom.Button.Script1"
CommandAction="javascript:
var listitem = '';
var ctx = SP.ClientContext.get_current();
var hostaddress = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port;
var currentWeb = ctx.get_web();
ctx.load(currentWeb);
var currentListGuid = SP.ListOperation.Selection.getSelectedList();
var currentList = currentWeb.get_lists().getById(currentListGuid);
ctx.load(currentList);
var selectedItems = SP.ListOperation.Selection.getSelectedItems();
var k = '';
for (k in selectedItems)
{

listitem = currentList.getItemById(selectedItems[k].id);

ctx.load(listitem);
ctx.executeQueryAsync(Function.createDelegate(listitem, function ()
{
var leafUrl=listitem.get_fieldValues().FileRef;
itemUrl = hostaddress + leafUrl;
alert(itemUrl);
var options = {
url: '/_layouts/RibbonCopyMove/CopyMovePage.aspx?items=' + itemUrl,
tite: 'Move Documents',
allowMaximize: false,
showClose: true,
width: 600,
height: 500 };

SP.UI.ModalDialog.showModalDialog(options);

}), null);
}

">