0

脚本:

    $(document).ready(function () {
          $('#Custom').hide('fast'); 
          $('#rbtnEntire').click(function () {
             $('#Custom').hide('fast');
            $('#Entire').show('fast');
            });

          $('#rbtnCustom').click(function () {
            $('#Entire').hide('fast');
            $('#Custom').show('fast');
           });
      });

    function showdiv() {
        document.getElementById("divChkList").style.display = "block";
     }

aspx ファイル:

<div style="height:700; width:500;">
<div id="select scan type">
    <asp:RadioButton ID="rbtnEntire" runat="server" Text="Entire" 
        GroupName="s1"/>
    <asp:RadioButton ID="rbtnCustom" runat="server" Text="Custom" 
        GroupName="s1"/>
</div>
<div id="Entire" style="float:left; height:1000; width:1000; border: solid 1px;  margin-left:5px;">
    Entire<br />
    <asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All" ShowLines="True" ExpandDepth="2">
     <Nodes>
     <asp:TreeNode Text="Entire">
          <asp:TreeNode Text="VM">
            <asp:TreeNode Text="MBS1">   
        </asp:TreeNode>
        <asp:TreeNode Text="PF1"></asp:TreeNode>
        </asp:TreeNode>


        <asp:TreeNode Text="VM1">
        <asp:TreeNode Text="MBS2"></asp:TreeNode>
        <asp:TreeNode Text="PF2"></asp:TreeNode>
        </asp:TreeNode>

    </asp:TreeNode>
    </Nodes>
    </asp:TreeView>
        <p>
    <asp:Button ID="btnCreateXML" runat="server" onclick="btnCreateXML_Click" 
        Text="Create XML" />
   <asp:Label ID="lblResult" runat="server" Text="Label"></asp:Label>
   </p></div>
   <div id="Custom" style="float:left; height:1000; width:2000; border: solid 1px; margin-left:10px;">

    Custom <br />
    <div id="Manual" style="border:solid 1px; float:left;">
        Manual Scan Controls
    </div>

    <div id="Multiple" style="border:solid 1px; float:left;">
    Multiple Scan Controls
        <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>
     </div>
     <asp:HiddenField ID="hidList" runat="server" />
    </div>
   <br />
   </div>

コードビハインド:

 protected void Page_Load(object sender, EventArgs e)
 {


    if (!IsPostBack)
    {
        initialiseCheckBoxList();
        rbtnEntire.Checked = true;
        try
        {
            TreeView1.Attributes.Add("onclick", "javascript: OnTreeClick();");
        }
        catch(Exception)
        {
            Response.Write("Error Occured While onTreeClick");
        }
    }
}
  public void initialiseCheckBoxList()
  {

   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();
        chkBxLst.Items.Add(lstValue);
    }
    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", "130px");
    div.Style.Add("overflow", "AUTO");
    div.Style.Add("display", "block");


   }//end of initialiseCheckBoxList()
  protected void btn_Click(object sender, EventArgs e)
   {
    string x=string.Empty;
    string strSelectedItem = "Selected Items ";
    CheckBoxList chk = (CheckBoxList)phDDLCHK.FindControl("chkLstItem");    // phDDLCHK is placeholder's ID

    for (int i = 0; i < chk.Items.Count; i++)
    {
        if (chk.Items[i].Selected)
        {
            if (strSelectedItem.Length == 0)
            {
                       strSelectedItem = strSelectedItem + ":" + chk.Items[i].Text;

            }
            else
            {
                strSelectedItem = strSelectedItem + ":" + chk.Items[i].Text;
                                }
        }
    }
           lblSelectedItem.Text =strSelectedItem;
  }

  public DataTable GetListItem()  
  {
    DataTable table = new DataTable();
    table.Columns.Add("ID", typeof(int));
    table.Columns.Add("Value", typeof(string));

    for (int icnt = 0; icnt < 10; icnt++)
    {
        table.Rows.Add(icnt, "ListItem"+":"+icnt);
    }
    return table;
}

問題: ラジオ ボタン rbtnCustom を選択すると、Div Custom と CheckboxList コントロールが表示されますが、これは発生していません。divを非表示にしないと表示されます。チェックボックスリストコントロールを表示するにはどうすればよいですか? これが私のコードです。どこが間違っていたのか教えてもらえますか? どんな助けでも感謝します!ありがとう!

4

2 に答える 2

0

一部の Javascript が機能しない理由は、クライアント側 (Javascript) コードでサーバーID を使用しているためです。

<asp:RadioButton ID="rbtnCustom" runat="server" Text="Custom" 
        GroupName="s1"/>

上記のコントロールはrunat="server"ID 属性に設定されているため、サーバー側のコントロール ID が設定されているため、クライアント ID が生成されます。サーバー上のこのコントロールにアクセスする必要がない場合は、asp.net コントロールの代わりに単に「入力」要素を使用する方が簡単な場合があります。もう 1 つのオプションはClientIDMode="Static"、クライアント ID がサーバー ID と同じになるように設定することです。

<asp:RadioButton ID="rbtnCustom" runat="server" Text="Custom" ClientIDMode="Static"
            GroupName="s1"/>

コード ビハインドで ID を設定せず、クライアント側 Javascript で ID を使用している場合は、任意のコントロールにこれを使用します。

編集:メソッドphDDLCHK.Controls.Add(div);の最後にもありません。initialiseCheckBoxList

また、JavaScript「OnTreeClick();」も提供していません。は。コードビハインドで参照されています。私が言えることから、initialiseCheckBoxListでカスタムチェックボックスリストの内容を1回だけ入力しています。

于 2012-11-21T05:26:38.153 に答える