2009-07-15 191 views
2

在我的網頁中我使用了一個gridview。在這個gridview中它顯示了一組用戶信息。 我剛剛從智能標籤菜單中添加了一個按鈕。而且我的要求是,當我點擊與每個用戶相對應的按鈕時,它將重定向到另一個頁面並顯示相應的用戶信息。我做什麼來獲得這種類型的輸出?gridview編輯

回答

3

u必須添加按鈕,添加屬性的CommandName:

<asp:Button ID="EditBtn" runat="server" CommandName="Edit" /> 

然後在網格的itemcommand的情況下,請執行下列操作

protected void GridView1_ItemCommand(object source, GridViewCommandEventArgs e) 
    { 
     if (e.CommandName == "Edit") 
     { 
      //Redirect to user page information 
      Response.Redirect(PageURL); 
     } 
    } 
1

而是按鈕,使的一個列超鏈接。點擊該項目後,重定向到您的新頁面(使用Javascript)。通過這個,你可以避免爲按鈕和回發添加一個列。

您必須爲此使用DataTextFormatString。

樣品

 <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"> 
     <Columns> 
      <asp:BoundField DataField="no" HeaderText="SNo" /> 
      <asp:BoundField DataField="file" DataFormatString="&lt;a href=javascript:ShowAssetDetail('{0}');&gt;{0}&lt;/a&gt;" 
       HeaderText="Asset Desc" HtmlEncodeFormatString="False" /> 
     </Columns> 
    </asp:GridView> 

在上述樣品的JS函數ShowAssetDetail()必須採取的值傳遞給重定向頁面。不用說,JS函數必須另外編寫。

+1

添加一個超鏈接是一個好主意,但是你在一個非常落後的生活方式去的話,你應該使用HyperLinkField字段來設置列 – Austin 2009-07-15 11:40:20

3

如果你想使用一個按鈕並使用戶的信息將你的頁面重定向到另一個頁面,那麼Ahmy的答案就是要走的路。然而,有一件事被遺漏了,就是你可以通過按鈕傳遞一個命令參數(就像用戶的唯一ID),然後你可以把它放在你重定向到的頁面的查詢字符串中,以確定它是哪個用戶。這將是這樣的:

<asp:TemplateField HeaderText="Edit User"> 
    <ItemTemplate> 
     <asp:Button ID="EditBtn" Text="Edit User" CommandName="Edit" 
      CommandArgument='<%# Eval("UserID") %>' runat="server" /> 
    </ItemTemplate> 
</asp:TemplateField> 

然後在後面的代碼

protected void GridView1_ItemCommand(object source, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "Edit") 
    { 
     //Redirect to user page information 
     Response.Redirect("UserProfilePage.aspx?userID=" + e.CommandArgument); 
    } 
} 

另一種方法使用一個按鈕,我想這是最好的選擇是使用HyperLinkField字段。使用按鈕時,頁面必須回發到服務器,然後將重定向發送到用戶的瀏覽器。用超鏈接,用戶直接進入正確的頁面。它節省了一個步驟,不依賴於JavaScript。

<asp:HyperLinkField DataTextField="UserName" DataNavigateUrlFields="UserID" 
    DataNavigateUrlFormatString="UserProfilePage.aspx?userID={0}" 
    HeaderText="Edit User" />