3

これは救済の質問だと思いますが、私は数日間戦っています..だから許してください. SharePoint 2010 で作業しており、ガント ビューにタスク リストがあります。リストには 6 つの列とガント チャートがあります。これらのタスクは、Microsoft Project 2010 と同期 (作成) されます。SharePoint では列幅が固定されていないため、列 2 (タイトル) の既定の幅を 450px にしたいと思います (十分に単純なはずですよね?)。CEWP を使用して多くの jquery オプションを試し、この列幅を設定しようとしました。これは見た目よりも簡単だと思いました…誰かが私がどこで軌道から外れているかを判断するのを手伝ってくれますか? ブラウザが使えなくなるまでインターネットを探しました...どんな助けでも大歓迎です。

私が試したオプション: どれも機能していないようです... ライブラリのテキスト ファイル (CEWP にリンクされています) にそれらがあります。スクリプトは実行されています。分割位置とズーム レベルを設定できるためです...桁。

オプション1

    <script type="text/javascript">
    $(function(){
    $("TH.ms-vh2-nograd:contains('Title')").css("width", "450px"); 
    $("TH.ms-vb:contains('Title')").css("width", "450px"); }); 
    </script>

オプション #2

    <script type="text/javascript"> 
    $(function() 
    { 
        $("tr.ms-viewheadertr th:contains('Title')").css("width", "450px"); 
    });
    </script>

オプション #3

    <script type="text/javascript"> 
    ExecuteOrDelayUntilScriptLoaded(function()
    {
    var oldGanttControl = SP.GanttControl;
    SP.GanttControl = function()
    {
    oldGanttControl.call(this);
    var oldInit = this.Init;
    this.Init = function(jsGridControl, jsRawGridData, params)
    {
    oldInit.call(this, jsGridControl, jsRawGridData, params);
    DoCustomizations(jsGridControl);
    };
    };
    },"SPGantt.js");

    Function DoCustomizations(grid)
    {
    var columns = grid.GetColumns();
    $.each(columns, function(key, value) {
    value.width=450;});
    grid.UpdateColumns(grid.parentNode.jsgridtableviewparams.columns);
    }
    </script>

動作するコードはこちらです。しかし、列幅を解決できません。

    <script type="text/javascript">
    ExecuteOrDelayUntilScriptLoaded(function()
    {
    var oldGanttControl = SP.GanttControl;
    SP.GanttControl = function()
    {
    oldGanttControl.call(this);
    var oldInit = this.Init;
    this.Init = function(jsGridControl, jsRawGridData, params)
    {
    oldInit.call(this, jsGridControl, jsRawGridData, params);
    DoCustomizations(jsGridControl);
    };
    };
    },"SPGantt.js");


    function DoCustomizations(grid) 
    {
    // Set the Splitter and Zoom Levels
    grid.SetSplitterPosition(725);
    grid.SetGanttZoomLevel(grid.GetGanttZoomLevel()+2);
    }

    </script>

回答 #1/更新 3 の結果

昨日、この問題を解決しようと決心しましたが、残念ながら....関数を適切に機能させるために結果を出さなかったのです。検索、読み、調査しましたが、役に立ちませんでした。セレクター ステートメントの構文はさまざまであるように思われるため、CEWP に構文エラーがあるのか​​、それとも生成関数のレンダリングに問題があるのか​​はわかりません。私が試したいくつかのバリエーション:

$('th[title="Title"]').css("width", "450px","important"); 
$('th[title="Title"]').css("width", "450px", "important");
$('th[title="Title"]').css('width', '450px', 'important');
$('th [title="Title"]').css("width", "450px", "important");
$("th [title='Title']").css("width", "450px", "important");  

何度も何度も....だから、あといくつか質問があると思うので、嘘をつく必要があります...

1) 適切な JavaScript ソース ライブラリを参照していない可能性はありますか? スクリプトは、参照するライブラリや使用するコードに関係なく、エラーや構文の問題を示しませんが、どちらも機能しません。現在、私はこれを参照しています....

<script src="http://code.jquery.com/jquery-latest.js"></script>

2) SharePoint CEWP は何らかの形で JQuery 編集に干渉しますか? 私は別の投稿を読みました(再び見つけることはできません)。編集が行われる前にページが完全にレンダリングされなかった場所????

アップデート4情報

ロジックを以下のように変更して確認しました....違いはありません

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">  

$(function()  
{  
   $(document).ready(function() {
    //Get the th that has a title attribute and it contains the value Title 
    $('th[title="Title"]').css("width", "450px","important");  
    });
});
</script>
4

4 に答える 4

2

最後にそれを釘付けにしました....最終的なスクリプトは、私が必要としていたすべてのアクションを実行するものです(他の人の将来の参照用)。私と付き合ってくれて、助けてくれて本当にありがとう。あなたのロジックとコードの構文のクリーンアップを組み合わせて、解決しました。ありがとう 繰り返しますが、私は助けがなければ、さらに何日も苦労していたでしょう!

<script src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript">
JSRequest.EnsureSetup();
    //ensure document is ready
    $(document).ready(function() 
    {
        ExecuteOrDelayUntilScriptLoaded(function() 
        { 
            var oldGanttControl = SP.GanttControl; 
            SP.GanttControl = function() 
            { 
                oldGanttControl.call(this); 
                var oldInit = this.Init; 
                this.Init = function(jsGridControl, jsRawGridData, params) 
                { 
                    oldInit.call(this, jsGridControl, jsRawGridData, params); 
                    DoCustomizations(jsGridControl); 
                }; 
            }; 
        },"SPGantt.js"); 
    });

    function DoCustomizations(grid) 
    {
        grid.SetSplitterPosition(725); //set the splitter position
        grid.SetGanttZoomLevel(grid.GetGanttZoomLevel()+2); //set the zoom level
        $("th[title='Title']").css("width", "450px","important"); // set the column width
    }
</script>
于 2012-08-23T15:32:53.297 に答える
0

セレクターを次のように変更してみてください::

<script type="text/javascript"> 
$(function() 
{ 
    //Get the th that has a title attribute
    $("th[title]").css("width", "450px","important"); 
});
</script>

アップデート

このcssリファレンスシートには、必要な要素へのリファレンスが含まれていますか?セレクターも確認してください。

また、生成関数の代わりに生成されたHTMLを投稿できますか?

2つ更新

生成されたコードに基づいて、jsfiddleimportantの構造の例を実行し、css属性にを追加して、うまくいくかどうかを確認しました。例を変更して機能させる必要があるかもしれませんが(内部にdivがあるthので、それらのdivを変更する必要があるかもしれません)、代わりにこれを試すことができるようにコードを再度更新しています(Tfortを変更しましたtitle) 。

3つ更新

それをありがとう、私はあなたが属性を持っているだけで要素を必要としないがtitle、それが含まれていることを理解していることを知っていますTitle。属性値を見つけるための多くのオプションがありますが、私は一般的にこの3つを使用します。

説明:指定された文字列に等しい値、またはその文字列の後にハイフン(-)が続く値を持つ、指定された属性を持つ要素を選択します。

説明:指定された部分文字列を含む値を持つ指定された属性を持つ要素を選択します。

説明:特定の値と正確に等しい値を持つ、指定された属性を持つ要素を選択します。

私たちの特定のケースでは、3番目のオプションを使用することをお勧めします。この投稿履歴をもう少し保持するために、新しいブロックコードを記述します。

<script type="text/javascript"> 
$(function() 
{ 
    //Get the th that has a title attribute and it contains the value Title
    $('th[title="Title"]').css("width", "450px","important"); 
});
</script>

ついに修正されたことを願っています。

アップデート4

jqueryコードをjqueryドキュメント内に配置する準備はできていますか?

アップデートファイブ

を使用すると競合が発生する可能性があることを読んでいるので、代わりに$を使用してみてください。jQuery

<script type="text/javascript"> 
   jQuery(function(){ 

      //Get the th that has a title attribute and it contains the value Title
      jQuery('th[title="Title"]').css("width", "450px","important"); 

   });
</script>
于 2012-08-19T01:18:13.003 に答える
0

SharePoint の TH タグには title 属性が含まれていません。

于 2013-03-14T12:21:15.447 に答える