簡體   English   中英

Asp.net動態gridview與下拉列表

[英]Asp.net dynamic gridview with dropdownlists

我有一個動態(允許動態添加行)一個ASP gridview,它的一個列中有一個下拉列表。 我希望根據數據輸入期間下拉列表中的選擇,在列中啟用/禁用文本框。

任何幫助將受到高度贊賞。

您可以使用jQuery輕松完成此操作。 通過一些修改,您可以按照您的意願使其正常工作。

首先,將以下內容添加到<head>標記中:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
   $(".ddlClass").change(function () {
      var txt = $(this).closest("tr").find(".txtClass");
      if ($(this).val() == 0) {
         txt.css("background", "#cccccc");
         txt.attr("disabled", "disabled");
      }
      else {
         txt.css("background", "#ffffff");
         txt.attr("disabled","");
      }
    });
});

接下來,創建gridview並為文本框和下拉列表添加模板列。 在下面的代碼中,請注意下拉列表已被賦予類“ddlClass”,文本框已被賦予類“txtClass”。 您可以根據需要更改這些。

<asp:gridview runat="server" ID="gvw" AutoGenerateColumns="false">
            <Columns>
                <asp:BoundField DataField="field1" />
                <asp:BoundField DataField="field2" />
                <asp:TemplateField HeaderText="Name">
                    <ItemTemplate>
                        <asp:TextBox runat="server" ID="txtName" CssClass="txtClass"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <select class="ddlClass">
                            <option value="1">Enabled</option>
                            <option value="0">Disabled</option>
                        </select>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:gridview>

.ready函數將click事件附加到具有類“ddlClass”的每個下拉列表。 更改后,代碼將在下拉列表的同一行中找到類“txtClass”的文本框,然后相應地啟用/禁用。

那么你可以使用Javascript,如果你熟悉它。 我推薦使用JQuery,因為它是一種用於遍歷DOM的查詢語言。

但是如果您不熟悉Javascript,那么我建議您在DropDownList上添加SelectionChangedEvent,然后在SelectionChangedEvent處理程序中為您的頁面添加代碼:將發送方對象轉換為DropDownList,然后獲取該對象的父級,這將是GridViewRow。

使用GridViewRow,您可以使用FindControl方法獲取對同一行中TextBox的引用,然后您可以啟用它或禁用它。

如果您不希望頁面刷新(回發后)每次更改下拉列表中的選擇,則將網格包裝在UpdatePanel中。

如果您對此感到困難,請告訴我,我會將代碼發布到上述解決方案之一。 請告訴我您最熟悉哪一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM