2014-03-31 54 views
0

我正在與GridView工作,幾乎所有的工作都很好。如何禁用某些控件,直到更新成功?

剩下的唯一的事情是確保當我在一個文本字段我打字,直到我更新完成所有其他text fieldsSubmit按鈕在我GridView其他行除了當前得到禁止。

這是我GridView的產生html代碼:

<div id="gridView"> 
        <div> 
     <table cellspacing="0" border="1" style="border-color:Red;border-collapse:collapse;position:absolute; top: 290px;" id="MainContent_grvIsoSearchResults" rules="all"> 
      <tbody><tr> 
       <th scope="col">ISONUM</th><th scope="col">OFFICE NAME</th><th scope="col">REGION</th><th scope="col">DIVISION</th><th scope="col">EMAIL ADDRESS</th> 
      </tr><tr> 
       <td> 
            <span style="display:inline-block;width:70px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoNum_0">222222222 </span> 
           </td><td> 
            <span style="display:inline-block;width:200px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoOfficeName_0">My Test</span> 
           </td><td> 
            <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvRegion_0">99</span> 
           </td><td> 
            <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvDivision_0">11111</span> 
           </td><td> 
            <input type="text" style="width:200px;" onclick="ResetMessage();" id="MainContent_grvIsoSearchResults_txtgvEmailAddress_0" value="[email protected]" name="ctl00$MainContent$grvIsoSearchResults$ctl02$txtgvEmailAddress"> 
            <input type="submit" id="MainContent_grvIsoSearchResults_btnEmailUpdate_0" value="Update" name="ctl00$MainContent$grvIsoSearchResults$ctl02$btnEmailUpdate"> 
           </td> 
      </tr><tr> 
       <td> 
            <span style="display:inline-block;width:70px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoNum_1">CB2222001 </span> 
           </td><td> 
            <span style="display:inline-block;width:200px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoOfficeName_1">DENNIS PETROVIC   </span> 
           </td><td> 
            <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvRegion_1"></span> 
           </td><td> 
            <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvDivision_1">99801</span> 
           </td><td> 
            <input type="text" style="width:200px;" onclick="ResetMessage();" id="MainContent_grvIsoSearchResults_txtgvEmailAddress_1" value="[email protected]" name="ctl00$MainContent$grvIsoSearchResults$ctl03$txtgvEmailAddress"> 
            <input type="submit" id="MainContent_grvIsoSearchResults_btnEmailUpdate_1" value="Update" name="ctl00$MainContent$grvIsoSearchResults$ctl03$btnEmailUpdate"> 
           </td> 
      </tr><tr> 
       <td> 
            <span style="display:inline-block;width:70px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoNum_2">FT2222001 </span> 
           </td><td> 
            <span style="display:inline-block;width:200px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvIsoOfficeName_2">DENNIS PETROVIC   </span> 
           </td><td> 
            <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvRegion_2"></span> 
           </td><td> 
            <span style="display:inline-block;width:50px;text-align:center" id="MainContent_grvIsoSearchResults_txtgvDivision_2">99801</span> 
           </td><td> 
            <input type="text" style="width:200px;" onclick="ResetMessage();" id="MainContent_grvIsoSearchResults_txtgvEmailAddress_2" value="[email protected]" name="ctl00$MainContent$grvIsoSearchResults$ctl04$txtgvEmailAddress"> 
            <input type="submit" id="MainContent_grvIsoSearchResults_btnEmailUpdate_2" value="Update" name="ctl00$MainContent$grvIsoSearchResults$ctl04$btnEmailUpdate"> 
           </td> 
      </tr> 
     </tbody></table> 
    </div> 

我該怎麼辦呢?

謝謝

+0

嘗試$(「輸入」).prop(「已禁用」,真正的);有時你還必須將元素或父元素的css-property更改爲z-index:-1 – user2718671

+1

還提到你的jQuery代碼。 –

+0

我正在使用'javascript'' onkeypress'那個。由於它是「UpdatePanel」的一部分,因此我的GridView未加載。所以,我正在使用'onkeypress'我需要類似foreach textfields那樣的註釋被更改,並提交不屬於改變文本的行的按鈕,禁用文本框和按鈕 –

回答

1

嘗試代碼波紋管;

$(function() { 
//this is based on your code only, this could be done a lot prettier if you added a custom attribute to each 
// <tr> like let's say - myrownumber ... then there is no need to get a child and find rownumber on the fly, 
//an everything would be prettier; 
$('input').live("focus", function() { 

    var rowId = $(this).attr('id'); 
    var selectedRow = rowId.substring((rowId.length - 1), rowId.length); 
    $('tr').each(function() { 
     //find rownum 
     var inputId = $(this).find('input').attr('id'); 

     if (inputId != null && typeof inputId !== "undefined") { 
      var row = inputId.substring((inputId.length - 1), inputId.length); 

      if (row !== selectedRow) { 
       $(this).find('input').prop("disabled", true); 
      } 
     } 
    }); 

}); 
//once again this is based on your code, this can be done more ellegantly if you implement smarter naming 
//make all buttons of same class, etc... for easier selection 
$('input[type=submit]').live("click", function() { 
    //submit your request and get response 
    //if response success 
    $('tr').each(function() { 
     $(this).find('input').prop("disabled", false); 
    }); 

}); 

});

+0

會工作,如果我的'GridView' 'UpdatePanel'內部並且正在頁面上呈現? –

+0

查看使用直播的最新編輯...但是,無論頁面嵌套深度如何,頁面中的所有輸入都會被仔細檢查,但這不是最佳性能,但如果對您很重要,您可以指定更詳細的選擇器來改進它。 – olexity

+0

謝謝你的幫助......我收到一個錯誤「對象不支持屬性或方法'道具'」,另外,我有另一個輸入字段,我認爲我不需要成爲gridview的一部分'。 –

1

隨着@幫助user3380971我已經完成我的解決問題的辦法:

$(函數(){

$('input[type="text"]').live("focus", function() { 
    var rowId = $(this).attr('id'); 
    $('tr').each(function(){ 
     var inputId = $(this).find('input[type="text"]').attr('id'); 
     var submitId = $(this).closest("tr").find('input[type="submit"]').attr('id'); 
     alert(submitId); 
     if(inputId != null && typeof inputId != "undefined"){ 
      if(rowId != inputId){    
       $(this).find('input[type="text"]').attr("disabled", "disabled"); 
       $(this).closest("tr").find('input[type="submit"]').attr("disabled","disabled"); 
      } 
     } 
    });         
}); 

});

現在,我禁用屬於不同的行然後onces屬於排在更新文本框和按鈕

相關問題