Chriz12 Ответов: 0

Обновите поле gridview, находясь в режиме редактирования строк


Привет,

Мне нужна некоторая помощь с GridView, вы можете найти html-код ниже.
В режиме редактирования, когда ddlType изменяется, мне нужно, чтобы lblAvg обновился с правильным значением (от ddlType), сохраняя строку в режиме редактирования.
Точно так же я должен сделать то же самое при новом добавлении (insert).

Любая помощь будет высоко оценена.

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" ShowFooter="true" Font-Size="Small"

           AllowPaging="True" PageSize="20">
             <Columns>
                 <asp:TemplateField ItemStyle-Width = "20px"  HeaderText = "ID" Visible="false">
                     <ItemTemplate>
                         <asp:Label ID="lblID" runat="server" Text='<%# Eval("ID")%>'></asp:Label>
                     </ItemTemplate>
                     <EditItemTemplate>
                           <asp:Label ID="txtID" runat="server" Text='<%# Eval("ID")%>'></asp:Label>
                     </EditItemTemplate>
                 </asp:TemplateField>
                 <asp:TemplateField ItemStyle-Width = "300px"  HeaderText = "Type">
                     <ItemTemplate>
                         <asp:Label ID="lblType" runat="server" Width="250px" Text='<%# Eval("TypeDescription")%>'></asp:Label>
                     </ItemTemplate>
                     <EditItemTemplate>
                         <asp:DropDownList ID="ddlType" Width="250px" runat="server"></asp:DropDownList>                  
                     </EditItemTemplate>
                     <FooterTemplate>
                         <asp:DropDownList ID="addDdlType" Width="250px" runat="server"></asp:DropDownList> 
                     </FooterTemplate>
                 </asp:TemplateField>  
                 <asp:TemplateField ItemStyle-Width = "150px"  HeaderText = "Average">
                     <ItemTemplate>
                         <asp:Label ID="lblAvg" runat="server" Text='<%# Eval("Avg")%>'></asp:Label>
                     </ItemTemplate>
                 </asp:TemplateField>
                 <asp:TemplateField ItemStyle-Width = "150px"  HeaderText = "Percentage">
                     <ItemTemplate>
                         <asp:Label ID="lblPerc"   runat="server" Text='<%# Eval("Perc")%>'></asp:Label>
                     </ItemTemplate>
                     <EditItemTemplate>
                         <asp:TextBox ID="txtPerc" runat="server" Width="100px" Text='<%# Eval("Perc")%>'></asp:TextBox>
                     </EditItemTemplate>
                     <FooterTemplate>
                         <asp:TextBox ID="addtxtPerc" Width="100px" runat="server"></asp:TextBox>
                     </FooterTemplate>
                 </asp:TemplateField>
                 <asp:TemplateField ItemStyle-Width="150" >
                    <ItemTemplate>
                        <asp:LinkButton ID="btnEdit" Text="Edit" runat="server" CommandName="Edit"/>                      
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:LinkButton ID="btnUpdate" Text="Update" runat="server" CommandName="Update"/>
                        <asp:LinkButton ID="btnCancel" Text="Cancel" runat="server" CommandName="Cancel"/>
                    </EditItemTemplate>
                      <FooterTemplate>
                        <asp:Button ID="btnInsert" runat="server" Text="Insert" Width="100" CommandName="Insert" />
                    </FooterTemplate>
                </asp:TemplateField>
                 <asp:TemplateField>
                     <ItemTemplate>
                       <span onclick="return confirm('Delete?')">
                          <asp:ImageButton ID="btnDelete" runat="server" ImageUrl="~\Images\delete.png" OnClick="Delete" CommandArgument='<%#Eval("ID")%>' />
                       </span>
                     </ItemTemplate>
                 </asp:TemplateField>
             </Columns>
         </asp:GridView>


Что я уже пробовал:

Я добавил следующее в ddlType OnSelectedIndexChanged

protected void cropTypeFillTextbox(object sender, EventArgs e)
       {
            DropDownList ddl = sender as DropDownList;

            foreach (GridViewRow row in gv.Rows)
            {
                gv.SetEditRow(row.RowIndex);


                Control ctrl = row.FindControl("ddlType") as DropDownList;
                if (ctrl != null)
                {
                    DropDownList ddl1 = (DropDownList)ctrl;
                    Label txt2 = row.FindControl("lblAvg") as Label;

                    txt2.Text = ddl1.SelectedItem.ToString();
                }
                gv.UpdateRow(row.RowIndex, false);
            }
         }

Gerry Schmitz

Ваше применение настольного менталитета к веб-страницам. Модель не подходит. Придерживайтесь заполнения пробелов на обратном пути.

0 Ответов