熱貼:datatable 與 單選銨鈕的結合 的2種方法

Mrpublic 2009-03-23
就是把查詢出來的對像用 datatable 顯出來后,在前有一個選擇框,選中后就把該列對像取出來傳到別的地方去。

我用了2種方法

第一種是用在<h:column>中用
<h:selectBooleanCheckbox value="#{selectedId[msg.id]}" /> 其中value值中 selectedId是一個hashMap對象,Key為
datatable綁定的查詢出來的對像的id值,

這個方法的缺點是 并不是單選按鈕,得寫一個js 來判斷 它
但在最后的
<h:commandButton action="#{}"  value="ok" onclick="js代碼"/>
會出現不管你js判斷是不是單選,都要執行 action方法

第二種是 在<h:column>
中用<input type="radio" name="choose" value="#{selectedId[msg.id]}">

但是 我沒有想到怎么去獲取 choose的值呀??(不是在js中用 )

哪位朋友解決過這個問題呀??
請分析分析。。。謝謝(seam中實現 )
Mrpublic 2009-03-23
呵呵,加個熱貼。。是為了引起注意哈 不好意思 因為這個問題太急了。。。
无双Rama 2009-03-24
期待答案。。。
sxlkk 2009-03-24
可否借鉴jsf的datatable的多选实现来解决这个问题吗,这是我写的jsf的datatable的多选实现http://sxlkk.iteye.com/blog/354386,在seam中我也能这样实现多选删除操作,但是不能进行选择一个进入修改操作
Mrpublic 2009-03-25
謝謝 和我的第一個方法差不多,我是想實現在datatable中實現單選的效果。。只能選中一個。。
sxlkk 2009-03-25
Mrpublic 写道
謝謝 和我的第一個方法差不多,我是想實現在datatable中實現單選的效果。。只能選中一個。。

这个应该用js控制一下就可以了,我在jsf中就是这样实现的
Mrpublic 2009-03-25
是可用js控制呀 但js控制不了<h:commandButton> 的action事件呀

不管選中一個還是多個執行完js 后都要執行action 我想讓沒是選中一個時不執行action呀

再次謝謝
Mrpublic 2009-03-25
沒辦法 只有在action中的方法寫一點代碼來控制吧
sxlkk 2009-03-25
不用吧,在调用完js时,如果返回的是false就不会运行action方法了
这是我jsf项目中的js控制,应该在seam中一样
js代码
function checked(){
    var a = document.cmd.getElementsByTagName("input");
    var b = 0;
    for (var i=2; i<a.length; i++){
      if (a[i].type == "checkbox" && a[i].checked==true){
      		b++;
       }
    }
    if(b>1){
        alert('不能对多个人员进行修改');
        return true;
    }
    if(b<1){
    	alert('请选择一个人员进行修改');
    	 return true;
    }
}

下面是jsf组件
<h:commandLink action="#{departmentBean.editAction}"
									onclick="return checked();">
									<img src="image/button/add1.jpg" border="0" />
									<h:outputText value="编辑" />
								</h:commandLink>
Mrpublic 2009-03-25
嗯 我也覺得调用完js时,如果返回的是false就不会运行action方法了 但在我這兒就是要執行action
還有就是在seam中 i<a.length;如果這樣就要報錯 把<改為&lt; 就不報錯。。。

哈哈 謝謝你的一直的熱心幫忙,goon...
Global site tag (gtag.js) - Google Analytics