2012-10-01 57 views
0

我有一個名爲「ddlFiles」的div。它包含一個DropDownList,其中包含一堆ID。我試圖做的是讓用戶選擇一個id,然後通過傳入選定的值來執行操作(存儲過程需要它)該操作第一次通過。但是當我嘗試再次選擇一個id時,它使用舊的id而不是新的id。因此,爲了傳遞正確的ID,我們必須讓用戶在實際使用第二個新ID之前選擇一個新的ID兩次。第二次從DropDownList中選擇一個值時。它不使用新選定的值。它使用舊值

(注:viewExpensesGrid是我flexigrid) - 而不是真正有用的,但我想我將它添加

這是我正從DropDownList中選定的值,然後把它傳遞給函數的功能。 :

function getCaseFiles(canMoveExpenses) { 
      //create Popup with content from div 
      $('#ddlFiles').dialog({ 
       autoOpen: true, 
       height: 'auto', 
       width: 'auto', 
       modal: true, 
       buttons: { 
        "Ok": function() { 
         var dropDownList = document.getElementById("ddlCaseFilesNew"); 
         var newCaseDdl = dropDownList.options[dropDownList.selectedIndex].value; 
         //alert("newCaseDdl = " + newCaseDdl); 

         var oldCaseFile = $("#hidCaseFile").val(); 
         //alert(oldCaseFile); 

         if (newCaseDdl != -1) { 
          moveCasefile(canMoveExpenses, newCaseDdl, oldCaseFile); 
          $(this).dialog('close'); 
          $("#viewExpensesGrid").flexReload();//simply refresh flexigrid 
         } 
         else { 
          showMessage("Error. Please Select a Value From The Lists."); 
         } 
        }, 
        Cancel: function() { 
         $(this).dialog('close'); 
         $("#viewExpensesGrid").flexReload(); 
        } 
       } 
      }); 
     } 

這裏是我的div = 「ddlFiles」:

<div id="ddlFiles"> 
    <label> 
     Select new CaseFile:</label> 
    <asp:DropDownList runat="server" ID="ddlCaseFilesNew" DataSourceID="dsCaseFiles" 
     DataTextField="Display" DataValueField="FileID" 
     OnPreRender="ddl_PreRender" Width="300px"/> 
</div> 

我的存儲過程需要一個新的CaseId和老CaseId,該hidCaseFile是hiddenFiel d。 (這已經包含了舊文件ID

+0

你調試了getCaseFiles函數嗎?如果沒有,我強烈建議你做這個分析如果var dropDownList得到什麼你的期望。 – daniloquio

+0

我只是想出瞭如何調試它。我目前正在調試它。到目前爲止,它在我第一次執行它時做的都是正確的,它會得到正確的值等。但是第二次創建彈出窗口並嘗試獲取值。它一直抓住我選擇的以前的值。 – user1084319

+0

var newCaseDdl = dropDownList.options [dropDownList.selectedIndex] .value; – user1084319

回答

1

嘗試改變這一點:

var dropDownList = document.getElementById("ddlCaseFilesNew"); 

與此

var dropDownList = $("#<%= ddlCaseFilesNew.ClientID %>"); 

執行時,服務器控件都有一個ID,它是從指定的不同ID標記,所以你應該得到它使用它的ClientID而不是「ddlCaseFilesNew」。

+0

我會嘗試此操作並回報。謝謝你,didn;不知道這個 – user1084319

+0

我試過了,但在調試器dropDownList評估爲「未定義」 – user1084319

相關問題