2012-07-31 50 views
0

Masterpage.cs內RUNAT =服務器HTML標記不runat=server與母版

認識html標籤例如在母版:使用ckb

<input type="checkbox" runat="server" id="ckb" /> 

給出代碼隱藏follwing錯誤

名稱 'CKB' 不在當前情況下存在

更新輸入是內部轉發的

我怎樣才能得到他,改變他的屬性?

+0

你能提供的導致該錯誤代碼行? – freefaller 2012-07-31 15:52:32

回答

1

如果您使用的是基於Template控件內的控件(如<asp:Repeater>),那麼你將不能夠像使用直接放在你的頁面/用戶控件/母版頁上的控件去的直接控制。

相反,您需要在模板控件本身上使用FindControl

例如,如果您設置了ItemDataBind事件處理程序,你就能夠做到如下...

protected void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if(e.Item.ItemType == ListItemType.Header) 
    { 
    HtmlInputCheckBox chk = (HtmlInputCheckBox)e.Item.FindControl("chk"); 
    } 
} 
0

您控制的idckb而不是checkAll

ckb將在後面的代碼中被識別。

+0

這是我的第一個想法(並且在我刪除它之前發表評論)......但是OP確實會說「使用ckb時」,所以我願意給他們帶來這個疑問的好處 – freefaller 2012-07-31 15:54:58

+0

@freefaller - 可能,但錯誤消息肯定表明不是。 – Oded 2012-07-31 15:56:00

+0

我發現問題,輸入是在一箇中繼器頭部,我怎麼能找到他並改變他的屬性? – baaroz 2012-07-31 15:58:27