2017-05-31 92 views
0

我有一個頁面數據的gridview控件顯示完全正常。我添加行中的編輯按鈕更新記錄,它也工作正常,直到我在下一列添加另一個鏈接,將其重定向到新頁面。 這裏是我的GridView代碼:編輯按鈕和下一頁鏈接按鈕在同一gridview行

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="White" BorderStyle="Ridge" BorderWidth="2px" CellPadding="3" CellSpacing="1" DataSourceID="SqlDataSource1" GridLines="None" DataKeyNames="issue_id,pro_id" OnRowCommand="GridView1_RowCommand"> 
      <Columns> 
       <asp:CommandField ShowEditButton="True" /> 
       <asp:TemplateField HeaderText="Key#" InsertVisible="False" SortExpression="issue_id"> 
        <EditItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Eval("issue_id") %>'></asp:Label> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:LinkButton ID="LinkButton1" runat="server" CommandName="view" CommandArgument ='<%# Eval("issue_id") %>' Text='<%# Eval("issue_id") %>'></asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="pro_id" HeaderText="pro_id" SortExpression="pro_id" ReadOnly="True" Visible="False" /> 
       <asp:BoundField DataField="name" HeaderText="Project Name" SortExpression="name" /> 
       <asp:BoundField DataField="type" HeaderText="Issue Type" SortExpression="type" /> 
       <asp:BoundField DataField="summary" HeaderText="Summary" SortExpression="summary" /> 
       <asp:BoundField DataField="mem_id" HeaderText="Member Name" SortExpression="mem_id" /> 
       <asp:TemplateField HeaderText="Priority" SortExpression="priority"> 
        <EditItemTemplate> 
         <asp:DropDownList ID="DropDownList1" runat="server"> 
          <asp:ListItem>Major</asp:ListItem> 
          <asp:ListItem>Critical</asp:ListItem> 
          <asp:ListItem>Minor</asp:ListItem> 
          <asp:ListItem>Cosmetic</asp:ListItem> 
         </asp:DropDownList> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Bind("priority") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="status" HeaderText="Status" SortExpression="status" /> 
       <asp:BoundField DataField="impact" HeaderText="Impact" SortExpression="impact" /> 
       <asp:BoundField DataField="Expr1" HeaderText="Submit Date" ReadOnly="True" SortExpression="Expr1" /> 
      </Columns> 
      <FooterStyle BackColor="#C6C3C6" ForeColor="Black" /> 
      <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" /> 
      <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" /> 
      <RowStyle BackColor="#DEDFDE" ForeColor="Black" /> 
      <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" /> 
      <SortedAscendingCellStyle BackColor="#F1F1F1" /> 
      <SortedAscendingHeaderStyle BackColor="#594B9C" /> 
      <SortedDescendingCellStyle BackColor="#CAC9C9" /> 
      <SortedDescendingHeaderStyle BackColor="#33276A" /> 
     </asp:GridView> 
     <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:IHDConnectionString %>" 
      SelectCommand="SELECT issue.issue_id, issue.pro_id, project.name, issue.type, issue.summary, issue.mem_id, issue.priority, issue.status, issue.impact, CONVERT (date, GETDATE()) AS Expr1 FROM issue INNER JOIN project ON issue.pro_id = project.pro_id" 
      UpdateCommand="UPDATE [issue] SET [mem_id] = @mem_id, [priority] = @priority, [status] = @status WHERE [issue_id] = @issue_id AND [pro_id] = @pro_id" 

      <UpdateParameters> 
       <asp:Parameter Name="mem_id" Type="String" /> 
       <asp:Parameter Name="priority" Type="String" /> 
       <asp:Parameter Name="status" Type="String" /> 
       <asp:Parameter Name="issue_id" Type="Int32" /> 
       <asp:Parameter Name="pro_id" Type="String" /> 
      </UpdateParameters> 
     </asp:SqlDataSource> 

這裏是我的重定向頁面控制

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 

     Response.Redirect("~/redirect.aspx?view=" + e.CommandArgument); 
    } 

現在的問題是,當我點擊編輯重定向我到另一個,而假設在同一頁面中編輯記錄。

+0

嘗試賦予按鈕不同的命令名稱,您可以使用switch語句檢查「RowCommand」事件處理程序中的按鈕命令名稱,例如GridView grid = sender作爲GridView;開關(e.CommandName){... //編輯或重定向到這裏}。 –

回答

1

您Row_Command改成這樣

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if(e.CommandName.ToString() == "view") 
    { 
     Response.Redirect("~/redirect.aspx?view=" + e.CommandArgument); 
    } 
} 
+0

非常感謝你對我有用 –

+0

不客氣兄弟。 –

0

我會建議使用一個鏈接時,你需要一個鏈接,你不需要做回發到「重定向」用戶:

<asp:TemplateField HeaderText="Key#" InsertVisible="False" SortExpression="issue_id"> 
    <EditItemTemplate> 
     <asp:Label ID="Label1" runat="server" Text='<%# Eval("issue_id") %>'></asp:Label> 
    </EditItemTemplate> 
    <ItemTemplate> 
     <a href='redirect.aspx?view=<%# Eval("issue_id") %>'><%# Eval("issue_id") %></a>    
    </ItemTemplate> 
</asp:TemplateField>