ITTIHAD FC. Ответов: 0

Подтверждение для buttonfeild


Привет всем,
Я сталкиваюсь с проблемой в подтверждении Subfor ButtonField в gridview (это моя главная проблема).

Раньше я использовал templatefield в gridview для каждой строки & для подтверждения я использую "onclientclick" & это очень хорошо работает, потому что пользователь не может сделайте любое событие, если он не нажал кнопку ОК или отменить, другими словами, это требуется.

Теперь у меня есть girdview & мне нужно было использовать свойство rowspan & это не сработает, если я преобразовал столбец в шаблон.

Мой GridView в столбцы: Exp_ID, эксперимент, требования, элемент, количество, ubdate_button &амп; delete_button.

Любой эксперимент имеет много элементов & любой элемент должен иметь количество, поэтому я сделал rowspan для Exp_Id, Experiment & кнопки, потому что я буду редактировать или удалять 1 эксперимент.

Моя проблема была в rowspan & я решил с помощью BoundField & ButtonField (без преобразования в templatefield), и это позволило мне сделать это.
По строкам.Ячейки(row_number).text я могу получить Exp_ID(PK) для редактирования.

Но моя текущая проблема заключается в удалении эксперимента с подтверждением

У меня есть 50% решения с помощью MsgBox, но проблема в том, что предотвращать пользователь может сделать любое событие, кроме 2 вариантов подтверждения ok или отмена (пользователь может сделать любое событие без выбора параметров MsgBox)

Я не мог использовать onclientclick ибо ButtonField не имеет публичного свойства под названием "onclientclick"

В особенности строения solutios являются:
1-Включение использования rowspan для templatefield.
2-запретить пользователю делать какие-либо события, кроме вариантов подтверждения

Я надеюсь, что проблема хорошо описана

Пожалуйста, найдите код позади для rowsspan & исходный код для gridview

исходный код gridview:

<asp:GridView ID="gv_exp" runat="server" AutoGenerateColumns="False" CssClass="mGrid" Width="45%" EmptyDataText="no data found" BorderWidth="1px">
                     <AlternatingRowStyle BackColor="#DCDCDC" />
                    <Columns>
                          <asp:BoundField DataField="Exp_ID" HeaderText="ID" ItemStyle-BorderWidth="1px" ItemStyle-BorderColor="Black" >
                          <ItemStyle BorderColor="Black" BorderWidth="1px" />
                          </asp:BoundField>
                          <asp:BoundField DataField="Exp_Name" HeaderText="Experiment" ItemStyle-BorderWidth="1px" ItemStyle-BorderColor="Black" >
                          <ItemStyle BorderColor="Black" BorderWidth="1px" />
                          </asp:BoundField>
                          <asp:BoundField DataField="element_id" HeaderText="Element ID" ItemStyle-BorderWidth="1px" ItemStyle-BorderColor="Black" >
                          <ItemStyle BorderColor="Black" BorderWidth="1px" />
                          </asp:BoundField>
                          <asp:BoundField DataField="element_name" HeaderText="Element" ItemStyle-BorderWidth="1px" ItemStyle-BorderColor="Black" >
                          <ItemStyle BorderColor="Black" BorderWidth="1px" />
                          </asp:BoundField>
                          <asp:BoundField DataField="quantity" HeaderText="Quantity" ItemStyle-BorderWidth="1px" ItemStyle-BorderColor="Black" >
                          <ItemStyle BorderColor="Black" BorderWidth="1px" />
                          </asp:BoundField>
                          <asp:ButtonField Text="ubtn" ButtonType="Image" ImageUrl="images/b_edit.png" CommandName="u123" ItemStyle-BorderWidth="1px" ItemStyle-BorderColor="Black" >
                          <ItemStyle BorderColor="Black" BorderWidth="1px" />
                          </asp:ButtonField>
                          <asp:ButtonField Text="dbtn" ButtonType="Image" ImageUrl="images/Delete.gif" CommandName="d123" ItemStyle-BorderWidth="1px" ItemStyle-BorderColor="Black" >
                          <ItemStyle BorderColor="Black" BorderWidth="1px" />
                          </asp:ButtonField>
                    </Columns>
                </asp:GridView>


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

Код позади для кнопок operatios(MsgBox в качестве комментария)

Protected Sub gv_exp_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles gv_exp.RowCommand

       Dim rowindex As Integer = Convert.ToInt32(e.CommandArgument)
       Dim row As GridViewRow = gv_exp.Rows(rowindex)

       If e.CommandName = "u123" Then

           lbmsg.Text = ""
           tr_add_new.Visible = True
           tr_add_new_table.Visible = True
           tr_cancel.Visible = True
           insert.Visible = False
           clear.Visible = False
           update.Visible = True
           exp_id = row.Cells(0).Text
           gv_eles_items(exp_id, "n")
           dt_gv_eles = userr.get_elements(exp_id, "y")
           If dt_gv_eles.PrimaryKey.Length = 0 Then
               dt_gv_eles.PrimaryKey = New DataColumn() {dt_gv_eles.Columns("ID")}
           End If
           i_gv_eles.DataSource = dt_gv_eles
           i_gv_eles.DataBind()

           i_exp_txt.Text = row.Cells(1).Text
           i_ele_quan.Text = ""

       ElseIf e.CommandName = "d123" Then

           tr_add_new_table.Visible = False
           tr_cancel.Visible = False
           tr_add_new.Visible = True


           ClientScript.RegisterStartupScript(Me.[GetType](), "alert", "alert('You clicked YES!')", True)


           'Dim a = MsgBox("Are you sure you want to delete selected experiment", MsgBoxStyle.OkCancel, "")

           'If a = MsgBoxResult.Ok Then

           '    operation = "Delete"

           '    i = userr.delete_experiment(row.Cells(0).Text, userid, role, operation, object1)

           '    If i = -1 Then
           '        lbmsg.Text = "there is mistake"
           '    Else

           '        lbmsg.Text = "experiment deleted successfully"
           '        gvdata()

           '    End If
           'Else

           'End If


       End If
   End Sub


код для атрибута rowspan

Protected Sub gv_exp_DataBound(sender As Object, e As EventArgs) Handles gv_exp.DataBound


      For i As Integer = gv_exp.Rows.Count - 1 To 1 Step -1
          Dim row As GridViewRow = gv_exp.Rows(i)
          Dim previousRow As GridViewRow = gv_exp.Rows(i - 1)

          If row.Cells(1).Text = previousRow.Cells(1).Text Then

              If previousRow.Cells(1).RowSpan = 0 Then

                  If row.Cells(1).RowSpan = 0 Then

                      previousRow.Cells(1).RowSpan += 2
                      previousRow.Cells(0).RowSpan += 2
                      previousRow.Cells(5).RowSpan += 2
                      previousRow.Cells(6).RowSpan += 2
                  Else
                      previousRow.Cells(1).RowSpan = row.Cells(1).RowSpan + 1
                      previousRow.Cells(0).RowSpan = row.Cells(1).RowSpan + 1
                      previousRow.Cells(5).RowSpan = row.Cells(5).RowSpan + 1
                      previousRow.Cells(6).RowSpan = row.Cells(6).RowSpan + 1
                  End If

                  row.Cells(1).Visible = False
                  row.Cells(0).Visible = False
                  row.Cells(5).Visible = False
                  row.Cells(6).Visible = False
              End If
          End If


      Next
  End Sub

0 Ответов