【问题标题】:How to get gridview values that was changed by javascript如何获取由javascript更改的gridview值
【发布时间】:2017-01-17 21:34:22
【问题描述】:

我有问题。我需要获取由 javascript 更改的 gridview 值。

我的 GV 是:

    <asp:GridView ID="GridViewImageList" CssClass="GridView" HeaderStyle-CssClass="GridViewHeader" RowStyle-CssClass="GridViewRow" FooterStyle-CssClass="GridViewFooter"  runat="server" AutoGenerateColumns="False" OnRowCancelingEdit="GridViewImageList_RowCancelingEdit" OnRowDeleting="GridViewImageList_RowDeleting" OnRowEditing="GridViewImageList_RowEditing" OnRowUpdating="GridViewImageList_RowUpdating" OnRowDataBound="GridViewImageList_RowDataBound">
        <Columns>
            <asp:CommandField ShowEditButton="false" />
            <asp:CommandField ShowDeleteButton="True" />
            <asp:TemplateField HeaderText="Image Name" Visible="false">
                <ItemTemplate>
                    <asp:Label ID="LabelImageName" runat="server" Text='<%# Eval("ImageName") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Image">
                <ItemTemplate>
                    <asp:Image ImageUrl='<%# Eval("ImageThumbURL") %>' runat="server" Height="75" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Size">
                <ItemTemplate>
                    <asp:DropDownList ID="DropDownListPhotoSize" runat="server"></asp:DropDownList>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Number of Copy">
                <ItemTemplate>
                    <asp:TextBox ID="TextBoxNumber" runat="server"  MaxLength="3" Width="20px" Text='<%# Eval("Number") %>'></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>

        </Columns>
    </asp:GridView>

通过在下面的文本框中输入: 和js函数:

    function updateAllTextbox(obj, item) {
        var totalRows = parseInt('<%= GridViewImageList.Rows.Count %>');
        var gvAllControl = document.getElementById('<%= GridViewImageList.ClientID %>');
        var gvItemControls = "";
        var gvHeaderControl = "";
        if (item == "number")
        {
            gvItemControls = "TextBoxNumber";
            gvHeaderControl = document.getElementById("textBoxNumberAll");
        }

        //get an array of input types in the gridview
        var inputTypes = gvAllControl.getElementsByTagName("input");

        for (var i = 0; i < inputTypes.length; i++) {
            //if the input type is a checkbox and the id of it is what we set above
            //then check or uncheck according to the main checkbox in the header template            
            if (inputTypes[i].type == 'text' && inputTypes[i].id.indexOf(gvItemControls, 0) >= 0)
                inputTypes[i].value = obj.value;


        }

    }

我正在更改所有行的 TextBoxNumber 字段的值。

但是当我从 Gridview 读取值时,它没有显示更改的值。请帮忙

【问题讨论】:

    标签: javascript c# asp.net gridview


    【解决方案1】:

    我终于明白了重点。 它只不过是在没有 Ispostback 属性的页面加载事件中绑定了 gridview。 每次当你首先触发任何事件时,页面加载事件都会触发,只需使用

    绑定你的 gridview
    if(!IsPostBack)
    {
       bindgrid();
    }
    

    【讨论】:

      猜你喜欢
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 2012-10-02
      • 2018-01-22
      相关资源
      最近更新 更多