代码之家  ›  专栏  ›  技术社区  ›  Kenzo_Gilead

如何在中继器中用组名设置3单选按钮

  •  0
  • Kenzo_Gilead  · 技术社区  · 6 年前

    我最好的方法是:

    <asp:Repeater runat="server" ID="repeaterImages" OnItemDataBound="repeaterImages_ItemDataBound">
      <ItemTemplate>
        <span>
              <asp:RadioButton runat="server" ID="rbLogoSeleccionado" Text='Logo 0' GroupName="nombreLogo" /><br />
              <asp:RadioButton runat="server" ID="rbLogoSeleccionadoApp" Text='Logo 1' GroupName="nombreLogoApp" /><br />
              <asp:RadioButton runat="server" ID="rbLogoSeleccionadoAppBlanco" Text='Logo 2' GroupName="nombreLogoAppBlanco" />
       </span>
     </ItemTemplate>
    </asp:Repeater>
    

    JS公司

    <script>
        function SetUniqueRadioButton(nameregex, current) {
    
            for (i = 0; i < document.forms[0].elements.length; i++) {
    
                elm = document.forms[0].elements[i]
    
                if (elm.type == 'radio') {
    
                    elm.checked = false;
                }
            }
            current.checked = true;
        }
    </script>
    

    反恐精英

    protected void repeaterImages_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        try
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                RadioButton rbLogoSeleccionado = (RadioButton)e.Item.FindControl("rbLogoSeleccionado");
                RadioButton rbLogoSeleccionadoApp = (RadioButton)e.Item.FindControl("rbLogoSeleccionadoApp");
                RadioButton rbLogoSeleccionadoAppBlanco = (RadioButton)e.Item.FindControl("rbLogoSeleccionadoAppBlanco");
    
                string script = "SetUniqueRadioButton('repeaterImages.*nombreLogo',this)";
                string scriptApp = "SetUniqueRadioButton('repeaterImages.*nombreLogoApp',this)";
                string scriptAppBlanco = "SetUniqueRadioButton('repeaterImages.*nombreLogoAppBlanco',this)";
    
                rbLogoSeleccionado.Attributes.Add("onclick", script);
                rbLogoSeleccionadoApp.Attributes.Add("onclick", scriptApp);
                rbLogoSeleccionadoAppBlanco.Attributes.Add("onclick", scriptAppBlanco);
            }
        }
    
        catch (Exception ex)
        {
            PIPEvo.Log.Log.RegistrarError(ex);
            throw;
        }
    }
    

    1 回复  |  直到 6 年前
        1
  •  0
  •   Kenzo_Gilead    6 年前

    小菜一碟。证明我在JS有多新。我张贴的解决方案,因为是一个经常性的问题,在asp编程和这个错误是已知的。除此之外,我找不到解决某些单选按钮。

    .

    <script>
        function SetUniqueRadioButton(text, current) {
            for (i = 0; i < document.forms[0].elements.length; i++) {
    
                elm = document.forms[0].elements[i]
    
                if ((elm.type == 'radio') && (elm.value == text)) {
                    elm.checked = false;
                }
            }
            current.checked = true;
        }
    </script>
    

    反恐精英

         protected void repeaterImages_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                try
                {
                    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                    {
                        RadioButton rbLogoSeleccionado = (RadioButton)e.Item.FindControl("rbLogoSeleccionado");
                        RadioButton rbLogoSeleccionadoApp = (RadioButton)e.Item.FindControl("rbLogoSeleccionadoApp");
                        RadioButton rbLogoSeleccionadoAppBlanco = (RadioButton)e.Item.FindControl("rbLogoSeleccionadoAppBlanco");
    
                        string script = "SetUniqueRadioButton('rbLogoSeleccionado',this)";
                        string scriptApp = "SetUniqueRadioButton('rbLogoSeleccionadoApp',this)";
                        string scriptAppBlanco = "SetUniqueRadioButton('rbLogoSeleccionadoAppBlanco',this)";
    
                        rbLogoSeleccionado.Attributes.Add("onclick", script);
                        rbLogoSeleccionadoApp.Attributes.Add("onclick", scriptApp);
                        rbLogoSeleccionadoAppBlanco.Attributes.Add("onclick", scriptAppBlanco);
                    }
                }
    
                catch (Exception ex)
                {
                    PIPEvo.Log.Log.RegistrarError(ex);
                    throw;
                }
            }
    

    <asp:Repeater runat="server" ID="repeaterImages" OnItemDataBound="repeaterImages_ItemDataBound">
      <ItemTemplate>
        <span>
              <asp:RadioButton runat="server" ID="rbLogoSeleccionado" Text='Logo 0' GroupName="nombreLogo" /><br />
              <asp:RadioButton runat="server" ID="rbLogoSeleccionadoApp" Text='Logo 1' GroupName="nombreLogoApp" /><br />
              <asp:RadioButton runat="server" ID="rbLogoSeleccionadoAppBlanco" Text='Logo 2' GroupName="nombreLogoAppBlanco" />
       </span>
     </ItemTemplate>
    </asp:Repeater>