這個任務原先以爲挺簡單的,就是當點擊datagrid中的行,就將這行的id插入到text文本框中。但是問題是一個一個接踵而來,讓我措手不及啊。
question1:界面是由兩個datagrid組成,點擊sys表之後根據sys的id來查找tab表,就是說tab是可以一直跟着選擇的sys變化的。而我單擊行事件時它的參數是此列表的行,而不是這條記錄的id,所有id=tab的datagrid是一直變化,當我換了一個sys時,text中原先選擇的內容就被清空了····
question2:每次點擊行時,就會將id放入到text中,但是已經選擇過的id點擊之後還是會在上面,這明顯不符合正常行爲啊···
question3:爲了改變question2的問題給行又加了一個Unselect事件,再次點擊它時就給他取消掉,而取消又要幹嘛呢,把這次點擊的id給他換掉,換成什麼腫麼換,這是個問題···
question4:那麼多的id我總不能擠在一起,老虎老鼠傻傻分不清楚的,所以要給一個id後面加個",",讓大家和平相處,驗證的時候也方便嘛,可是我要是驗證的時候只管/id+”,“/的話就會產生另一個錯誤,比如裏面有3和53,驗證的時候他就有問題啦,可是在前面加了”,“的 話別的又有問題···
我只能一步一步的算計啊,走邏輯啊,反正是一步一步的改過來了,不知道還有沒有別的錯誤,只能說我已經盡力了······
js——code
$(document).ready( function(){
$('#sys').datagrid({ onClickRow:
function (rowIndex, d) {
var sys_code = d.sys_code;
$('#tab').datagrid({queryParams:{sys_code:sys_code},method:'post'});
}
});
$('#sys').datagrid({ onSelect:
function (rowIndex, d) {
var yq = $('#tabId').val();
$('#tab').datagrid({
onSelect:function (rowIndex, d) {
var oh = "," + d.tbl_id +",";
var oq = d.tbl_id +",";
var or = eval("/^"+oq+"/");
var ot = or.test(yq);
if(ot == true){
yq=yq;
}
else{
var x = yq.replace(oh,",");
var b = d.tbl_id +",";
if(x==yq){
yq = yq + b ;
}
else{
yq=yq;
}
}
$('#tabId').val(yq)
},
onUnselect:function(rowIndex,d){
var uq = d.tbl_id+",";
var ur = eval("/^"+uq+"/");
var ut = ur.test(yq);
if(ut == true){
yq = yq.replace(uq,"");
}
else{
var x =","+ d.tbl_id+",";
yq = yq.replace(x,",");
}
$('#tabId').val(yq);
}
});
}
});
});