2016-12-06 332 views
0

私はjsの中にエラーが発生しましたチェックボックス
でDropDownListコントロールを作成しました:JavaScriptエラー:未定義またはnull参照のプロパティ 'style'を取得できませんでしたか?

document.onclick = check; 
function check(e) { 
    var target = (e && e.target) || (event && event.srcElement); 
    var obj = document.getElementById('divChkList'); 
    var obj1 = document.getElementById('ddlChkList'); 
    if (target.id != "alst" && !target.id.match("chkLstItem")) { 
     if (!(target == obj || target == obj1)) { 
      obj.style.display = 'none' 
     }  

HTML:

<table> 
     <tr> 
      <td valign="top" style="width: 165px"> 
        <asp:PlaceHolder ID="phDDLCHK" runat="server"></asp:PlaceHolder> 
      </td> 
      <td valign="top"> 
        <asp:Button ID="btn" runat="server" Text="Get Checked" OnClick="btn_Click" /> 
      </td> 
      <td valign="top"> 
        <asp:Label ID="lblSelectedItem" runat="server"></asp:Label> 
      </td> 
     </tr> 
</table> 
<asp:HiddenField ID="hidList" runat="server" /> 

ここでは、ここで私はドロップダウンリストを定義したPage_Loadの
のコードCS です

DropDownList ddl = new DropDownList(); 
     ddl.ID = "ddlChkList"; 
     ListItem lstItem = new ListItem(); 
     ddl.Items.Insert(0, lstItem); 
     ddl.Width = new Unit(155); 
     ddl.Attributes.Add("onmousedown", "showdivonClick()"); 
     CheckBoxList chkBxLst = new CheckBoxList(); 
     chkBxLst.ID = "chkLstItem"; 
     chkBxLst.Attributes.Add("onmouseover", "showdiv()"); 
     DataTable dtListItem = GetListItem(); 
     int rowNo = dtListItem.Rows.Count; 
     string lstValue = string.Empty; 
     string lstID = string.Empty; 
     for (int i = 0; i < rowNo - 1; i++) 
     { 
      lstValue = dtListItem.Rows[i]["Value"].ToString(); 
      lstID = dtListItem.Rows[i]["ID"].ToString(); 
      lstItem = new ListItem("<a href=\"javascript:void(0)\" id=\"alst\" style=\"text-decoration:none;color:Black; \" onclick=\"getSelectedItem(' " + lstValue + "','" + i + "','" + lstID + "','anchor');\">" + lstValue + "</a>", dtListItem.Rows[i]["ID"].ToString()); 
      lstItem.Attributes.Add("onclick", "getSelectedItem('" + lstValue + "','" + i + "','" + lstID + "','listItem');"); 
      chkBxLst.Items.Add(lstItem); 
     } 
     System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div"); 
     div.ID = "divChkList"; 
     div.Controls.Add(chkBxLst); 
     div.Style.Add("border", "black 1px solid"); 
     div.Style.Add("width", "160px"); 
     div.Style.Add("height", "180px"); 
     div.Style.Add("overflow", "AUTO"); 
     div.Style.Add("display", "none"); 
     phDDLCHK.Controls.Add(ddl); 
     phDDLCHK.Controls.Add(div); 

ここでのエラーobj.style.display = 'none'

私は修正プログラムをオンラインで探していますが、何も問題ありません。

私は間違っていますか?質問で提供

+0

あなたのHTMLを投稿してください。 – Sankar

+0

'divChkList'が定義されていますか? –

+0

これは、javascriptがdivChkListを見つけることができないことを意味します。私はあなたのHTMLを投稿する必要があることに同意します – jelliaes

答えて

0

HMTLはID divChkList

を持つ要素を持っていない、それが存在していた場合でも、ASP.netコントロールを呼び出すの正しい方法は本

var obj = document.getElementById('<%=divChkList.ClientID%>'); 

ようなものだこれは、 asp.netは、server controlというマークアップで指定したのと同じIDをレンダリングしません。

関連する問題