Le contrôle "ctl02" de type "Bouton" doit être placé à l'intérieur d'une balise de formulaire avec runat=server
Je reçois cette erreur lorsque vous essayez de générer un certain nombre de boutons de la programmation. Je n'ai pas de ctl02.. Pourquoi suis-je une erreur?
Button pgs = new Button();//Create New Topic
pgs.Width = 20;
pgs.Command += obtainTopicsPerPage_Click;
pgs.CommandName = tPage.ToString();
pgs.Text = tPage.ToString();
btns.Add(tPage.ToString());
buttons.Add(pgs);
J'ai créer quelques boutons et boucle le long de la liste (les boutons). Puis-je obtenir cette erreur :(. ... pourquoi?
Complet de conception:
int maximumTopicPages;
int tPage;
int questionNumber=1;
Dictionary<string, List<DisplayAllQuestionsTable>> tPages;
List<Button> buttons = new List<Button>();
protected void Answer_Click(object sender, EventArgs e)
{
ViewState["SeekPressed"] = "pressed";
tPages = new Dictionary<string, List<DisplayAllQuestionsTable>>();
string subTopic = SubTopicDropDownList.SelectedItem.Value;
List<DisplayAllQuestionsTable> threadsByTopic = new List<DisplayAllQuestionsTable>();
List<string> btns = new List<string>();
foreach (var topicKeys in postsByTopic)
{
if (topicKeys.Key == subTopic)
{
foreach (var item in postsByTopic[topicKeys.Key])
{
questionNumber++;
maximumTopicPages++;
threadsByTopic.Add(item);//Adds All DisplayAllTables objects
//if there are 20 add a button.
if (maximumTopicPages == 20)
{
tPages.Add(tPage++.ToString(), threadsByTopic);//Add a number to the page each time, with a DisplayTable object
//new Button
Button pgs = new Button();//Create New Topic
pgs.Width = 20;
pgs.Command += obtainTopicsPerPage_Click;
pgs.CommandName = tPage.ToString();
pgs.Text = tPage.ToString();
btns.Add(tPage.ToString());
buttons.Add(pgs);
maximumTopicPages = 0;
threadsByTopic.Clear();
}
}//number of questions per page
if (!tPages.ContainsKey((questionNumber / 20).ToString()))
{
tPages.Add((questionNumber / 20).ToString(), threadsByTopic);//If A button is missing add it.
}
}
Façon, les boutons sont ajoutés à la table:
void MyButtonTable()
{
TableRow myTableRow = new TableRow();
HtmlForm form = new HtmlForm();
form.Attributes.Add("runat", "server");
Page.Controls.Add(form);
foreach (var item in buttons)
{
TableCell myTableCell = new TableCell();
form.Controls.Add(item);
myTableCell.Controls.Add(item);
myTableRow.Cells.Add(myTableCell);
}
Table2.Rows.Add(myTableRow);
Page.Controls.Add(Table2);
}
- Qu'est-ce que les boutons ? merci de poster votre conception de formulaire ?
- C'est une simple Liste. voir ci-dessus
Vous devez vous connecter pour publier un commentaire.
Etes-vous ajouter des boutons à la Page par la suite?
Aussi, si vous ne spécifiez pas un ID à vos boutons, ils seront automatiquement dans le formulaire de ctlXXX
Qu'est-ce que dans le .fichier aspx? Plus précisément, qu'est-ce que les " boutons de contrôle? Ma conjecture est, il est un espace réservé ou panneau ou quelque chose de similaire. Dans ce cas, vous devez l'ajouter à votre .fichier aspx:
Qui devrait résoudre le problème.
ASP.NET doit avoir le
<form>
tag gérés par le serveur afin d'utiliser côté serveur contrôles sur votre page. Si votre page a déjà un<form>
tag sur elle quelque part, vous pouvez simplement ajouterrunat="server"
de cette balise et il va le corriger. (Qui suppose que le " boutons de contrôle que vous essayez d'ajouter le créé dynamiquement bouton dans l'espace réservé ou panneau ou quoi que ce soit -- est lui-même entre les<form>...</form>
balises.)runat="server"
attribut problématique. Vous devez attribuer par le balisage. La collection d'Attributs dit ASP.NET quels sont les attributs à afficher dans le code HTML qui est envoyé au client, et ne peut fonctionner que sur une étiquette qui est interprété sur le serveur. Mais ASP.NET ne sait pas que c'est censé être de l'interprétation de la <form> tag sur le serveur, sauf si vous ajoutezrunat="server"
dans le balisage.Son travail....
S'il vous plaît ajouter votre nouveau bouton de contrôle dans de
Ici form1 -> nom du formulaire disponible dans .fichier aspx et objButton est l'objet bouton.
Vous devez vérifier si "boutons" (je pense que c'est un espace réservé) est à l'intérieur d'un div ou une étiquette avec runat="server"
mise à jour
Si je comprends bien vous pouvez essayer quelque chose comme ceci:
(non testé)