2009-11-23 92 views
1

我有一個帶有單選按鈕列的表格。我設法讓無線按鈕列動態地插入到一個單元格中(如果有的話)。但是,在回發innerHtml沒有更新與「檢查」屬性。如何從插入到innerHtml中的單選按鈕獲取值

你能給我一個想法如何找出(在服務器上)如果單選按鈕已被檢查?

更多信息:這是在更新面板內的用戶控制。

This將是對我的話題好後,仍然沒有幫助

+0

在客戶端還是在服務器上? – Josh 2009-11-23 16:22:07

+0

我假設服務器,因爲「回發」被提及 – gn22 2009-11-23 16:26:28

+0

後部分代碼。 – Saar 2009-11-23 16:42:32

回答

0

任何原因你不能使用標準的asp:RadioButton並使用javascript來確保它是互斥的。我之前通過向radiobutton添加自定義屬性,然後使用js函數取消選中具有該屬性的所有項目,然後檢查選定的項目來完成此操作。這可以解決IE問題,它可以防止groupname屬性在不同容器中的放射性盒上工作。

radioButton.InputAttributes.Add("ClientGroupName", "grpRadioList"); 
radioButton.InputAttributes.Add("onclick", 
    string.Format(
    "javascript:radiobuttonToggle('{0}','ClientGroupName','grpRadioList');" 
     ,radioButton.ClientID)); 

並使用下面的JS取消選中所有無線電,然後檢查你想要的。 注意我使用InputAttributes而不是Attributes,因爲單選按鈕被包裹在span標籤中,所以InputAttributes是添加到實際輸入控件而不是span的項目。

function radiobuttonToggle(selectedRB, attribName, attribValue) 
{ 
    var objRadio = document.getElementById(selectedRB); 

    for(i = 0; i < document.forms[0].elements.length; i++) 
    { 
     elm = document.forms[0].elements[i]; 
     if (elm.type == 'radio') 
     { 
      if(elm.getAttribute(attribName) == attribValue) 
       elm.checked = false; 
     } 
    } 
    objRadio.checked = true; 
} 

然後,您可以將radioButton.Checked作爲CS文件中的屬性公開,並將其重新用作控件。

0

檢查Form.Request("radio-name") != null

當它被選中你只有一個非空值。

+0

不起作用:( – 2009-11-23 16:39:17

+0

奧列格,「無線電廣播名稱」需要用您的複選框的「名稱」屬性的值(而不是id屬性)代替 – gn22 2009-11-23 17:08:59

+0

Request.Form [rbtnReplaced.ClientID]或Request [ rbtnReplaced.ClientID]? 兩者都是空的 – 2009-11-23 17:46:27

0

確保您的頁面元素在回發時正確重建。任何第一次插入單選按鈕的綁定過程將不得不重新運行,然後才能第二次訪問它們。

+0

我可以看到innerHtml,但它看起來完全如我插入它。 – 2009-11-23 17:00:49

0

這裏是工作的例子,首先我用的方法you linked添加電臺到我的網頁表格:

function addRadio() 
{ 
    try{ 
     rdo = document.createElement('<input type="radio" name="fldID" />'); 
    }catch(err){ 
    rdo = document.createElement('input'); 
    } 
    rdo.setAttribute('type','radio'); 
    rdo.setAttribute('name','fldID'); 
    document.getElementById('container').appendChild(rdo); 
} 

然後在後面的代碼我用下面只代碼即可獲得電臺的價值:

string value = Request["fldID"]; 

因此,請確保您試圖獲取服務器端單選按鈕的名稱。您應該在服務器端使用name屬性,而不是id。

+0

保護無效Page_Init(對象發件人,EventArgs e) { div。InnerHtml =「」; } protected void Button1_Click(object sender,EventArgs e) Console.WriteLine(Request [「gnReplace」]); } 與值「開」困惑,不管選擇返回值。如果名稱是RadioGroup,我應該得到什麼樣的價值? – 2009-11-24 11:48:19

相關問題