簡體   English   中英

GridView編輯按鈕需要2次點擊

[英]GridView Edit Button Requires 2 Clicks

在gridview中按編輯按鈕時,僅在單擊2次后才會顯示編輯模板。 另一個問題:要編輯的字段的值最初顯示在gridview中,但不顯示在編輯模板中。

Asp代碼:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" 
AutoGenerateColumns="False" CellPadding="4" OnRowEditing="EditRow" 
OnRowCancelingEdit="CancelEditRow" DataKeyNames="AREA" DataMember="DefaultView">

  <Columns>
     <asp:BoundField DataField="AREA" HeaderText="AREA" ReadOnly="True" 
                                        SortExpression="AREA" />                                   

      <asp:TemplateField HeaderText="LEADER_USER" SortExpression="LEADER_USER">
                     <ItemTemplate><%#Eval("leader_user")%></ItemTemplate>
                      <EditItemTemplate>
                          <asp:TextBox ID="txtleaderuser" runat="server" Text='<%#Eval("leader_user")%>'/>
                      </EditItemTemplate>
       </asp:TemplateField>

       <asp:TemplateField>                                    
           <ItemTemplate>
                  <asp:ImageButton ID="editButton" runat="server" CommandName="Edit" 
                                                ImageUrl="images/pencil1.png" Text="Edit" ToolTip="Edit" />
            </ItemTemplate>
             <EditItemTemplate>
                   <asp:Button ID="BtnUpdate" runat="server" CommandName="Update" 
                                                Text="Update" />
                   <asp:Button ID="BtnCancel" runat="server" CommandName="Cancel" 
                                                Text="Cancel" />
              </EditItemTemplate>
             </asp:TemplateField>

      </Columns>
    </asp:GridView>

vb代碼:

Protected Sub EditRow(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
        GridView1.EditIndex = e.NewEditIndex
        GridView1.DataSource = SqlDataSource1
        'If Not IsPostBack Then
        'GridView1.DataSourceID = SqlDataSource1.ID
        'GridView1.DataBind()
        'End If
 End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        SqlDataSource1.SelectCommand = "SQL"
        SqlDataSource1.ConnectionString = "My conn string"

        If Not IsPostBack Then
            'GridView1.DataSourceID = SqlDataSource1.ID
            GridView1.DataSource = SqlDataSource1
            GridView1.DataBind()
        End If    


    End Sub

我認為您需要調用DataBind來重新綁定數據源。 你已經對它進行了評論,但看起來你在IsPostBack塊中有它,它只能在初始頁面加載時執行。

嘗試:

Protected Sub EditRow(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
    GridView1.EditIndex = e.NewEditIndex
    GridView1.DataSource = SqlDataSource1
    GridView1.DataBind()        
End Sub

暫無
暫無

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

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