2016-04-24 48 views
0

我有一個顯示數據庫結果表格的GridView。我將ShowSelectButton設置爲true,但鏈接始終讓我回到GridView所在的頁面。我如何更改SelectButton的URL來說UpdateItem.aspx?id = ???哪裏?等於db行的ID?如何在ASP中設置GridView SelectButton的URL?

<asp:SqlDataSource ID="GetStudents" runat="server" ConnectionString="<%$ ConnectionStrings:dbConn %>" SelectCommand="dbo.GetStudents" SelectCommandType="StoredProcedure"></asp:SqlDataSource> 
     <asp:GridView ID="StudentGrid" runat="server" AutoGenerateColumns="False"> 
      <Columns> 
       <asp:CommandField ShowSelectButton="true" /> 
       <asp:BoundField DataField="studentId" HeaderText="ID" /> 
       <asp:BoundField DataField="firstName" HeaderText="First Name" /> 
       <asp:BoundField DataField="lastName" HeaderText="Last Name" /> 

回答

0
<asp:GridView ID="StudentGrid" runat="server" AutoGenerateColumns="False" DataKeyNames="StudentId" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"> 

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    int studentId=0; 
    int.TryParse(GridView1.SelectedValue, out studentId); 
    Response.Redirect("~/UpdateItem.aspx?id=" + studentId); 
} 

或許你可以考慮嘗試像上面一些,看看有沒有什麼幫助。

+0

我得到以下錯誤:消息驗證(ASP.Net):屬性「的SelectedIndexChanged」是不是有效元素的屬性'GridView – ShoeLace1291

+0

@ ShoeLace1291對不起,有一個錯字。正確的屬性應該是「OnSelectedIndexChanged」。 – woodykiddy

0

您可以通過一個TemplateField與超鏈接或一個LinkBut​​ton更換CommandField

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:HyperLink runat="server" NavigateUrl='<%# "~/UpdateItem.aspx?id=" + Eval("ID") %>' Text="Select" /> 
    </ItemTemplate> 
</asp:TemplateField> 
+1

甚至更​​好''Text =「details」>< asp:Hyperlink>' 注意:這是_not_ SelectButton了。以及答案。 –

+0

@AlexanderKudryashev是的。我提到他可以使用LinkBut​​ton或HyperLink並顯示第一個。我將用HyperLink替換它,這是更有效的。謝謝! – ConnorsFan

+0

是的,我同意。我只是錯過了你的評論的這一部分。 說實話,我討厭PostBackUrl。 –