Если вы обнаружили, что ваши отредактированные поля обновлены «одним щелчком мыши», как правило, это связано с тем, что вы отскакиваете свой GridView
, но на самом деле у вас нет или вы отскок перед тем, как сделать обновление.
С Gridview, типичным сценарием, когда вы размещаете поля в сноске, чтобы вычислить его значение во время Databinding операций страницы Lifecycle
Это идет как это, ваш файл .aspx определяет некоторый колонтитул поле, обычно некоторые BoundField
который был преобразован в TemplateField
с. Вот отрывок:
<asp:GridView ID="GridView1" runat="server" ShowFooter="true" ...>
<Columns>
<asp:BoundField DataField="Field1" HeaderText="Title" SortExpression="Field1" />
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Field2") %>' ></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="FooterLabel1" runat="server" Text="" ></asp:Label>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
GridView События в коде позади: Это, как правило, то, что вам нужно сделать, чтобы заполнить поля колонтитула, основанные на изменении значения строки. Это VB, но вы должны иметь возможность легко конвертировать его.
// Create a variable at the Page level that will exist for
// the duration of the Page LifeCycle
Private FooterLabel1SubTotal as Double
// Initialize
Private Sub GridView1_DataBinding(sender As Object, e As EventArgs) Handles GridView1.DataBinding
FooterLabel1SubTotal = 0.0
End Sub
// Accumulate
Private Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataRow Then
Dim Field2 as Label = e.Row.FindControl("Field2")
FooterLabel1SubTotal += Convert.ToDouble(Field2.Text)
End If
End Sub
// Populate Footer with formated value
Private Sub GridView1_DataBound(sender As Object, e As EventArgs) Handles GridView1.DataBound
FooterLabel1 = GridView1.FooterRow.FindControl("FooterLabel1")
FooterLabel1.Text = String.Format("{0:F2}", FooterLabel1SubTotal)
End Sub
Теперь, если вы используете любой из встроенных в Редактирование особенностей GridView, что приведет к Postback и заставит GridView
пересвязать, который должен произвести перерасчет FOOTER полей каждый раз.
Вы должны показать нам код! – Magnus
Можете ли вы опубликовать свой код на стороне клиента для GridView и ваш серверный код для событий OnEdit и OnUpdate? – Melanie