J'ai un répéteur qui remplit une liste de 3 colonnes et a une case à cocher à côté de chaque ligne. J'essaie de créer un scénario dans lequel une personne vérifie une ligne, la page localise la zone de texte "Nom de partie" à l'intérieur de la ligne répéteurs correspondant à la ligne sur laquelle la case a été cliquée, et une fois cette case cochée envoie le nom de la partie à une autre zone de texte en dehors du répéteur appelé "testTextBox.Text". J'ai mon code ci-dessous, et je suis sûr de manquer quelque chose car je n'ai pas fait d'événement "OnCheckChanged" auparavant, je ne connais que les événements onTextChanged.Avoir Checkbox à l'intérieur du répéteur envoyer des données de Textbox à l'intérieur du répéteur à un autre Textbox en dehors du répéteur
Voici le code:
<asp:Repeater ID="rptAccount" runat="server" OnItemCommand="rptAccount_ItemCommand">
<HeaderTemplate>
<table>
<tr>
<th>Account
</th>
<th>Portion ID
</th>
<th>Portion Name
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:TextBox ID="Account" runat="server" Width ="50px" Text='<%#Eval("Account") %>' ></asp:TextBox>
</td>
<td>
<asp:TextBox ID="PortionID" runat="server" Width ="90px" Text='<%#Eval("Portion ID") %>' ></asp:TextBox>
</td>
<td>
<asp:TextBox ID="PortionName" runat="server" Width ="340px" Text='<%#Eval("Portion Name") %>'></asp:TextBox>
</td>
<td>
<asp:CheckBox ID="Name" runat="server" OnCheckedChanged = "TbName_CheckedChanged" Checked='<%# Eval("Name").ToString() == "True" %>' ></asp:CheckBox>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
Code cs:
protected void TbName_CheckedChanged(object sender, EventArgs e)
{
var PortionName = (sender as TextBox).Parent;
var rptAccount = (sender as TextBox).Parent;
var checkedd = rptAccount.FindControl("Name") as CheckBox;
var PortionNamee = rptAccount.FindControl("PortionName") as TextBox;
if (checkedd.Checked)
{
testTextBox.Text = PortionNamee.Text;
}
}
Merci pour toute aide que vous pouvez offrir.
Vous devez utiliser le rptAccount_ItemCommand – hardkoded
où serait que cmd insérer sur la page ASPX? toujours sous l'événement OnCheckChanged? –
Copie possible de [Case à cocher dans le répéteur, Comment obtenir la valeur du nom de la commande dans la fonction de changement de contrôle] (https://stackoverflow.com/questions/18439197/check-box-inside-repeater-how-to-get-command -nom-valeur-dans-le-chèque-changé-f) – hardkoded