1

목록의 항목을 업데이트 할 필요없이 매 오늘 날짜를 가져올 사용자 정의 열을 만들 수 있는지 알고 싶었습니까?sharepoint 2010 : javascript가있는 사용자 정의 열

나의 최종 목표는 대상 날짜와 오늘 날짜 사이의 남은 시간 또는 초과 한 시간을 계산할 수있는 것입니다.

페이지에 숨겨진 코드를 배치 한 다음 계산 된 열을 만들 때 날짜 div의 innerHTML을 어떻게 든 참조한다고 생각했습니다.

오늘 = new Date();

D = today.getDate(); 
    M = today.getMonth() + 1; 
    Y = today.getYear(); 
    document.getElementById('date').innerHTML=D+"/"+M+"/"+Y; 

    <div id="date" style="display:none"></div> 

사람이 작업을 수행 할 수있는 방법에 대해 어떤 생각을 가지고?

+0

동료가 우리가 시도한 몇 가지 방법을 설명하는 게시물을 작성하여 도움이되지는 않습니다. http://blog.pentalogic.net/2011/08/how-not-to-develop-a-sharepointtoday-calculated-column/ – Ryan

+0

참으로 솔루션을 찾은 검색 중이 페이지를 보았습니다. 나는 그가 제공하는 부가 기능을 구매하는 다른 해결책이 없다고 생각한다. 특히 사소한 것처럼 보이는 문제에 대해. – Jake

+0

글쎄, 내가 그 사람이 어떻게 잘못되었는지, 특히 사소한 일을 말해 줄 때까지 기다리고있을 것이다.) 한 가지 생각 - q를 편집하고 어떻게하려고하는지보다 오히려 성취하려는 것을 말해 보시지 않겠습니까? - 나는 짐작할 수 있지만 확신 할 수 없다고 생각합니다. 그러면 접근 방법에 대한 대안이있을 수 있습니다. – Ryan

답변

3

당신은/아래로 카운트를 보여 날짜와 오늘 날짜, 예를 들어, 사이의 일 수를 표시하는 열을 계산하려면

작업 X | 마감일 2 월 20 일 | 해당 서버 측 코드 (예를 들어, 사용자 정의 필드 유형 코드가 실행되지 않습니다 페이지 뷰에서 실행됩니다 보장 할 수

당신 인해에 오일

직접 사용자 지정 열에서이 작업을 수행 할 수 없습니다 일반 목록보기), 자바 스크립트를 사용할 수 있습니다 (사용자 정의 열이 있거나 없음).그것은 같은 소리 Christophe of pathtosharepoint.com 명성에 의해이 포함

post details 4 ways to get a countdown field working은 사용자의 요구 사항에 맞는 : -

당신은 여기에서 아이디어를 가지고 사용자 정의 컬럼와 결합 수 @Ivan에 표시된 것처럼 javascript refs를 출력하거나 CEWP를 통해 페이지에 자바 스크립트를 추가 할 수 있습니다.

+0

고맙습니다. 올바른 방향으로 나를 가리켰다 고 생각합니다. 시도하기를 기다릴 수 없습니다! – Jake

2

는이 같은 렌더링을 위해 자신의 필드 유형 및 설정 자바 스크립트를 만들 수 있습니다

<FieldType>
...
< RenderPattern 이름 = "DisplayPattern">
<HTML> <! [CDATA [< 스크립트 src = "/ _ layouts/MyDateTime.js"> </스크립트 >]]> </HTML을 >
<HTML> < [CDATA [< 사업부 > <SCRIPT> GetCurrentTime(); "]] > </HTML >
< 사업부 아이디 ="날짜 "스타일 ="디스플레이! : none "> </div >
<HTML> <! [CDATA ["]; </SCRIPT > </DIV >]]>/RenderPattern > </HTML >
<
</FieldType >

다음 레이아웃 폴더에 GetCurrentTime 함수 정의와 MyDateTime.js을 넣어하면됩니다 . 사용자 정의 필드 유형 선언에 대한 자세한 내용은 참조 : 당신이 말한 http://www.spsamples.com/2011/06/sharepoint-indicator-field-type.html

+0

당신의 대답은 위대한 것 같아요 내가 문제가있는 유일한 것은 어디 사용자 정의 필드 유형을 작성합니까? 그것을 위해 Visual Studio를 사용해야합니까? 또는 SP 디자이너가 충분합니까? 내 질문이 어리 석다면 미안해. 그것은 제가 방금 전에 보여준 방법으로 아직 어떤 경험도하지 못했기 때문입니다. 이걸 사용하는 방법을 정교하게 충분히 친절하게 해주시겠습니까? 고맙습니다. – Jake

+0

사용자 지정 필드 형식을 만들려면 특수 xml 파일을 작성해야하며 메모장에서도이 작업을 수행 할 수 있습니다. 필드 유형에 대한 마크 업을 작성한 후에는 fldtypes_MyFieldType.xml (fldtypes_로 시작하는 것은 필수 항목입니다. SharePoint가 이것이 필드 유형 정의라는 것을 알고있는 방법입니다)을 Program Files \ Common Files \ Microsoft Shared \ Web에 넣어야합니다 Server Extensions \ 14 \ TEMPLATE \ XML 디렉터리에 있습니다. iisreset을 실행하면 SharePoint가 새 유형을 구문 분석하고이를 사용할 수 있습니다. 필드 유형 마크 업의 예를 보려면이 기사를 참조하십시오. http : //msdn.microsoft.com/en-us/library/gg132914.aspx –

+0

시나리오에서는 사용자 정의 필드 클래스를 구현할 필요가 없습니다. 표준 필드 유형 (예 : 텍스트 필드)의 클래스를 상속하는 데 충분합니다. –

2
Include a content editor web part in the page (newform.aspx/editform.aspx) and use jQuery (or just plain JavaScript) to handle the setting of default values. 

Edit: some example code: 


In the lists newform.aspx, include a reference to jquery. If you look at the html code, you can see that each input tag gets an id based on the field's GUID, and a title that's set to the fields display name. 


now, using jquery we can get at these fields using the jQuery selector like this: 

By title: 


$("input[title='DISPLAYNAMEOFFIELD']"); 

by id (if you know the field's internal guid, the dashes will ahve to be replaced by underscores: 

// example field id, notice the guid and the underscores in the guid ctl00_m_g_054db6a0_0028_412d_bdc1_f2522ac3922e_ctl00_ctl04_ctl15_ctl00_ctl00_ctl04_ctl00_ctl00_TextField 

$("input[id*='GUID']"); //this will get all input elements of which the id contains the specified GUID, i.e. 1 element 


We wrap this in the ready() function of jQuery, so all calls will only be made when the document has fully loaded: 


$(document).ready(function(){ 
// enter code here, will be executed immediately after page has been loaded 
}); 


By combining these 2 we could now set your dropdown's onchange event to the following 


$(document).ready(function(){ 
$("input[title='DISPLAYNAMEOFFIELD']").change(function() 
{ 
     //do something to other field here 
}); 
}); 
+0

기본값 설정 - OP의 질문을 어떻게 해결합니까? – Ryan

+0

나는 비슷한 방법을 보았다고 생각한다. http : //sympmarc.com/2009/05/20/pre-filling-column-values-in-a-sharepoint-form/ 나는 그것을 시도했지만 그렇지 않았다. 정말로 운동을합니다. : ( – Jake

관련 문제