我有一个页面,显示有关Gridview中项目的信息,当用户点击ItemNo时,它应该转到新的重定向页面。以下是我所拥有的,似乎不起作用 它应该通过使用ItemNo从Db获取ID号,而不是将其自身重定向到适当的页面。
页面应重定向到具有不同IP地址和主机名的页面。
.aspx page
<asp:GridView ID="gvWorkOrderSum" runat="server" CellPadding="4"
ShowFooter="True" DataKeyNames="InfoID" BorderColor="#5D7B9D" BorderWidth="2px" OnDataBound="gvWorkOrderSum_OnDataBound"
ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" OnRowDeleting="gvWorkOrderSum_RowDeleting"
Caption='<table width="100%" cellpadding="0" cellspacing="0" bgcolor="#5D7B9D"><tr><td ><span style="color: white; font-family: Arial Black">WorkOrder information</span></td></tr></table>'
DataSourceID="odsWorkOrderList">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField ShowHeader="False">
<asp:TemplateField HeaderText="ItemNo">
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
<FooterStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:LinkButton ID="lbItemNo" runat="server" CommandName="OrderDetail" CommandArgument='<%#Eval("ItemNo") %>'
Text='<%# Bind("ItemNo") %>'></asp:LinkButton>
</ItemTemplate>
</asp:GridView>
aspx.cs页面
protected void gvWorkOrderSum_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "OrderDetail") //
{
int nItemNo = int.Parse(e.CommandArgument.ToString());
SqlCommand cmd = new SqlCommand("SELECT ID FROM Order_Items WHERE Item_ID =" + nItemNo);
cmd.Parameters.Add("@ID", SqlDbType.Int).Direction = ParameterDirection.Output;
InternalSalesDB.Instance.query(cmd);
Response.Redirect("Sales/Orders/OrderDetail.aspx?ID=" + (get the ID number from DB) + "&ItemNo=" + nItemNo, true);
}
答案 0 :(得分:1)
您忘记将OnRowCommand
添加到 GridView 。
答案 1 :(得分:1)
使用 GridView 上的OnRowCommand
属性和事件处理程序gvWorkOrderSum_RowCommand
<asp:GridView ID="gvWorkOrderSum" OnRowCommand="gvWorkOrderSum_RowCommand" ...>
...
</asp:GridView>
答案 2 :(得分:0)
关于你的上一个问题; 尝试使用
Response.Redirect("~\\Sales\Orders\OrderDetail.aspx?OID=" + (get the OID number from DB) + "&ItemNo=" + nItemNo, true);