0

次のコードは、いくつかのチェックボックスを示しており、それらのいずれかを選択するとページにリストされます。"LinkButton"問題は、リンクをクリックするとckeckboxが表示されるページで使用したいということです。で使用するOnLoad="Page_Edit"と正常"asp:LinkButton"checkboxlist動作しますが、常に表示したくないのでcheckboxlist、「クリックして作業する」チェックボックスをクリックして表示したいです。リンク。を使用するOnClick="Page_Edit"と、チェックボックスのいずれかを選択して、がcheckboxlist消えます。どんな助けでも大歓迎です。

  <h3> CheckBoxList Constructor Example </h3>


   <asp:LinkButton id="myid" runat="server"  Text="Click to work with checkbox!" OnLoad="Page_Edit" OnClick="Page_Edit"    /><br />
  Select items from the CheckBoxList.


  <br /><br />

  <asp:PlaceHolder id="Place" runat="server"/>

  <br /><br />

  <asp:label id="Message" runat="server"/>

void Check_Clicked(オブジェクト送信者, EventArgs e) {

     // Retrieve the CheckBoxList control from the Controls collection
     // of the PlaceHolder control.
     CheckBoxList checklist =  (CheckBoxList)Place.FindControl("checkboxlist1");

     // Make sure a control was found.
     if(checklist != null)
     { 

        Message.Text = "Selected Item(s):<br /><br />";

        // Iterate through the Items collection of the CheckBoxList 
        // control and display the selected items.
        for (int i=0; i<checklist.Items.Count; i++)
        {

           if (checklist.Items[i].Selected)
           {

              Message.Text += checklist.Items[i].Text + "<br />";

           }

        }

     }

     else
     {

        // Display an error message.
        Message.Text = "Unable to find CheckBoxList control.";

     }

  }


  void Page_Edit(Object sender, EventArgs e)
  {

     // Create a new CheckBoxList control.
     CheckBoxList checklist = new CheckBoxList();

     // Set the properties of the control.
     checklist.ID = "checkboxlist1";
     checklist.AutoPostBack = true;
     checklist.CellPadding = 5;
     checklist.CellSpacing = 5;
     checklist.RepeatColumns = 2;
     checklist.RepeatDirection = RepeatDirection.Vertical;
     checklist.RepeatLayout = RepeatLayout.Flow;
     checklist.TextAlign = TextAlign.Right;            

     // Populate the CheckBoxList control.
     checklist.Items.Add(new ListItem("Item 1"));
     checklist.Items.Add(new ListItem("Item 2"));
     checklist.Items.Add(new ListItem("Item 3"));
     checklist.Items.Add(new ListItem("Item 4"));
     checklist.Items.Add(new ListItem("Item 5"));
     checklist.Items.Add(new ListItem("Item 6"));

     // Manually register the event-handling method for the 
     // SelectedIndexChanged event.
     checklist.SelectedIndexChanged += new EventHandler(this.Check_Clicked);

     // Add the control to the Controls collection of the 
     // PlaceHolder control.

     Place.Controls.Add(checklist);

  }
4

3 に答える 3

1

チェックボックスとリンクボタンの OnLoad を取り除きます。OnLoad は毎回実行され、リンクボタンがクリックされたときにのみ表示されるという条件を満たしていません。アイテムが常に常にリストにある場合は、コントロールをマークアップに追加することをお勧めします。

<asp:CheckboxList .. Visible="false">
  <Items>
    <asp:ListItem Text="Item 1" />
  </Items>
</asp:CheckBoxList>

visible プロパティに注意してください。linkbutton onclick で、checkboxlistID.Visible = true を設定すると、ユーザーに表示されます。

于 2015-08-12T16:05:32.347 に答える
0

IsPostBack チェックを使用して PageLoad メソッドに新しい CheckBoxList コントロールを作成することをお勧めします。

protected void Page_Load(object sender, EventArgs e)
{                        
if(!IsPostBack)
    //create checkbox list
}

その後、リンク ボタンに OnClick="Page_Edit" のみを追加し、Page_Edit メソッド内で Visible プロパティのみを変更してみてください。

void Page_Edit(Object sender, EventArgs e)
{
   if(yourCondition)
      yourCheckBoxList.Visible = true;
   else
      yourCheckBoxList.Visible = false;
}
于 2015-08-12T18:49:02.347 に答える
0

解決策は、"asp:linkBut​​ton" に OnLoad と OnClick の両方を設定し、OnClick イベントでチェックリストを表示することです。このようにして、チェックボックスがページにロードされますが、表示されるリンクをクリックしない限り非表示になります。皆さん、ありがとうございました。

于 2015-08-12T18:54:27.793 に答える