在PageBlockTable中获取/设置字段的值

时间:2014-02-05 22:25:19

标签: javascript jquery dom salesforce apex-code

我在visualforce页面中有一个pageBlockTable,在表格中我允许用户通过JQuery .sortable重新排列行的顺序。

不,我想在页面保存中存储此排序,因此我在Salesforce中的产品上创建了一个名为sort_order的新参数,该参数是一个数字字段。

我想更新表格中的字段,并且每次拖动行时最终都会隐藏,以便在保存时存储所有内容。

我有以下代码,我试图循环遍历表并更新字段appropriatley,但我无法计算出用于设置字段值的JQuery语法。

以下是创建表格的代码:

        <apex:pageBlock title="Selected {!$ObjectType.Product2.LabelPlural}" id="selected">
            <apex:variable value="{!1}" var="index">  
            <apex:pageblockTable value="{!shoppingCart}" var="s" id="shopping_cart" rowClasses="cartRow">
                <tr data-SFid="{!index}">


                <apex:column headerValue="{!$ObjectType.OpportunityLineItem.Fields.Description.Label}">
                    <apex:inputField id="item_description" value="{!s.Description}" required="false"/>
                </apex:column>



                <apex:column headerValue="Current ID">
                <apex:inputField id="Current_ID" value="{!s.Sort_Order__c}" style="width:70px" required="false" onkeyup="refreshTotals();"/>
                </apex:column>

                <apex:column headerValue="Updated ID" value="{!index}" />

                <apex:column >
                    <apex:commandLink value="Remove" action="{!removeFromShoppingCart}" reRender="selected,searchResults" immediate="true">
                        <!-- this param is how we send an argument to the controller, so it knows which row we clicked 'remove' on -->
                        <apex:param value="{!s.PriceBookEntryId}" assignTo="{!toUnselect}" name="toUnselect"/>
                    </apex:commandLink>
                    <apex:variable value="{!index+1}" var="index">
                    </apex:variable>
                </apex:column>

                <apex:column headerValue="{!$ObjectType.Product2.LabelPlural}" value="{!s.PriceBookEntry.Product2.Name}"/>




                <apex:column headerValue="{!$ObjectType.OpportunityLineItem.Fields.Quantity.Label}">
                    <apex:inputField value="{!s.Quantity}" style="width:70px" required="true" onkeyup="refreshTotals();"/>
                </apex:column>

                <apex:column headerValue="{!$ObjectType.OpportunityLineItem.Fields.UnitPrice.Label}">
                    <apex:inputField value="{!s.UnitPrice}" style="width:70px" required="true" onkeyup="refreshTotals();"/>
                </apex:column>


               </tr>  
            </apex:pageblockTable>
            </apex:variable>

这是“当前ID”可编辑字段,我想要更新的ID为Current_ID。

就目前我已经使用更新脚本而言,我已经使用“已选择”ID循环遍历行,但我不确定如何更新/访问该值。

$( "[id$=shopping_cart] tbody" ).sortable({
                    update: function(event, ui) {
                    //init();
                    i = 0;
                    $("[id$=shopping_cart] tbody tr.cartRow").each(function() {
                          $this = $(this)
                          var value = $(this).find('Current_ID');
                          var value2 = $(value).find('value');
                          console.log("Checking Row " + i);
                          console.log(value);
                          console.log(value2).value;
                          i++;
                          });

    })

非常感谢帮助,因为我更像是一个ObjectiveC人而不是Javascript / JQuery人!

由于

加雷

1 个答案:

答案 0 :(得分:1)

$( "[id$=shopping_cart] tbody" ).sortable({
            update: function(event, index) {$("[id$=shopping_cart] tbody tr .cartRow").each(function(index, value) {$(value).val(index); });}
})