javascript - 允许插入文本框或下拉值 javascript

标签 javascript asp.net telerik radcombobox radtextbox

我如何只允许客户端插入这两个字段之一。文本框(选定的列)或下拉列表中的值(选定的列),但 GridView 中只允许一个字段。

<asp:GridView ID="gvMedia" DataSourceID ="dsMedia" SkinID="GridviewSkin" runat="server" AutoGenerateColumns="false" AllowSorting="true"  GridLines="Vertical" Width="700px" CellPadding="2" PageSize="50">
  <Columns>
   <asp:TemplateField HeaderText="Selected">
      <ItemTemplate>
         <telerik:RadTextBox runat="server" ID="txtSelected" Width="80px" MaxLength="10" onkeypress="return NumberOnly(this)">
          </telerik:RadTextBox>
         <asp:Label ID="lblOr" runat="server" Text='or'></asp:Label>
         <telerik:RadComboBox ID="cmbSelected" CssClass="ComboBox" runat="server" Width ="50px" Height="100px">
           <Items>
             <telerik:RadComboBoxItem runat="server" Text="" Value="" />
             <telerik:RadComboBoxItem runat="server" Text="100%" Value="100%" />
             <telerik:RadComboBoxItem runat="server" Text="50%" Value="50%" />
           </Items>
         </telerik:RadComboBox>
       </ItemTemplate>
  </asp:TemplateField>
 </Columns>
<EditRowStyle BackColor="#99FF66" />
<SelectedRowStyle BackColor="#FFFF99" />
</asp:GridView>

enter image description here

首选方法:使用客户端事件。

最佳答案

请尝试使用以下代码片段。

<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript">
        function ValueChanged(obj, eve) {
            var id = obj.get_id();
            var tarid = obj.get_id().replace("txtSelected", "cmbSelected");
            var combo = $telerik.findComboBox(tarid);
            if (obj.get_value() != "")
                combo.clearSelection();
        }
        function ClientSelectedIndexChanged(obj, eve) {
            var id = obj.get_id();
            var tarid = obj.get_id().replace("cmbSelected", "txtSelected");
            var txt = $telerik.findTextBox(tarid);
            txt.set_value("");
        }
    </script>
</telerik:RadCodeBlock>
<asp:GridView ID="gvMedia"
    runat="server" AutoGenerateColumns="false" AllowSorting="true" GridLines="Vertical" Width="700px" CellPadding="2" PageSize="50">
    <Columns>
        <asp:TemplateField HeaderText="Selected">
            <ItemTemplate>
                <telerik:RadTextBox runat="server" ID="txtSelected" Width="80px" MaxLength="10">
                    <ClientEvents OnValueChanged="ValueChanged" />
                </telerik:RadTextBox>
                <asp:Label ID="lblOr" runat="server" Text='or'></asp:Label>
                <telerik:RadComboBox ID="cmbSelected" CssClass="ComboBox" runat="server" Width="50px" Height="100px"
                    OnClientSelectedIndexChanged="ClientSelectedIndexChanged">
                    <Items>
                        <telerik:RadComboBoxItem runat="server" Text="" Value="" />
                        <telerik:RadComboBoxItem runat="server" Text="100%" Value="100%" />
                        <telerik:RadComboBoxItem runat="server" Text="50%" Value="50%" />
                    </Items>
                </telerik:RadComboBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <EditRowStyle BackColor="#99FF66" />
    <SelectedRowStyle BackColor="#FFFF99" />
</asp:GridView>

如果有任何疑问,请告诉我。

关于javascript - 允许插入文本框或下拉值 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33342587/

相关文章:

javascript - Mongoose /Mongodb : Exclude fields from populated query data

asp.net - 解决方案中未包含的Visual Studio编译文件

.net - 适用于 .NET 的嵌入式 CMS

wpf - 通过 MVVM 绑定(bind) Telerik RadRichTextBox

javascript - Nativescript:逻辑控制sideDrawer

javascript - 如何将 VBScript 变量传递给 iMacros Javascript 宏?

javascript - 如何在不刷新页面的情况下清空wenzhixin bootstrap table中单击事件的搜索框?

javascript - 每个列表元素的动态字段类更改和 Js 来识别类的一部分

asp.net - 下拉列表不会触发 SelectedIndexChanged

javascript - Telerik - 将 JavaScript 文件包含在页面底部