【发布时间】:2017-09-22 14:08:17
【问题描述】:
这是一件非常简单的事情,但我已经坚持了很长时间。 所以我创建了一个数据表并将数据放到一个gridview上。伟大的 使 Sheet_id 可点击,当点击它时,我将直接进入一个新页面。 但是我想获取我从 gridview 中选择的 sheet_id 以便将其用于其他 sql 查询。
如何使用链接按钮将该 sheet_id 从一个页面传递到另一个页面。
这是 ExistingSheet.aspx
<asp:GridView ID="grdSheet" runat="server" AutoGenerateColumns="False"
CssClass="tablesorter table table-bordered table-hover table-striped tblCtr"
>
<Columns>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:Label ID="hdnSheetId" runat="server" Text='<%# Eval("SNO")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sheet ID">
<ItemTemplate>
<asp:LinkButton runat="server" ID="sheetId" CommandName="sheet_id" CommandArgument='<%# Eval( "sheet_id")%>' Text='<%# Eval( "sheet_id")%>' OnClick="" PostBackUrl="~/SheetDetail.aspx">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
这是 ExistingSheet.aspx.cs
protected void grdSheet_RowCommand(object sender, GridViewCommandEventArgs e)
{
Response.Redirect("SheetDetail.aspx" + e.CommandArgument);
}
这是我想要获取数据到 SheetDetail.aspx.cs 的页面
public void FillGridSheet()
{
eExistingSheetQuery existingSheetQuery = new eExistingSheetQuery();
grdSheetDetail.DataSource = existingSheetQuery.DisplayReportSheet(**SHEET ID TO BE PLACED HERE**);
grdSheetDetail.DataBind();
}
这是 eExistingSheetQuery.cs
public DataTable DisplayReportSheet(string sheetId)
{
try
{
conn = new SqlConnection(estocktake);
conn.Open();
DataTable dtd = new DataTable();
GridView gvd = new GridView();
cmds = new SqlCommand("Select ROW_NUMBER( ) OVER (order by sheet_id) as SNO, csd.Barcode, csd.ItemId, pm.Description, csd.Quantity " +
"from CountSheetDetails csd " +
"join ProductMaster pm on pm.Barcode = csd.Barcode and pm.ItemId = csd.ItemId " +
"where csd.SheetId = '" + sheetId + "' and pm.Status ='A';",conn);
adpt = new SqlDataAdapter();
adpt.SelectCommand = cmds;
cmds.ExecuteNonQuery();
adpt.Fill(dtd);
conn.Close();
conn.Dispose();
for (int i = 0; i < dtd.Rows.Count; i++)
{
dtd.Rows[i]["SNO"] = i + 1;
}
return dtd;
}
catch (Exception)
{
conn.Close();
conn.Dispose();
return null;
}
}
我想使用 id 来将它用于我将从 SQL 中提取的下一个查询
我看过一些例子,但我不认为我真的明白。任何建议都会很棒。谢谢!
【问题讨论】:
-
我认为您在 grdSheet_RowCommand() 中缺少正确的 URL 解析字符串。也许“SheetDetail.aspx?SheetID="+...等
-
还提供与此相关的所有代码,以便我们可以更好地帮助您 - eExistingSheetQuery() 有什么作用?它真的会返回一个数据源吗?如果没有,那就是另一个问题了。
-
@Fandango68 嗨,先生,我添加了它,并且 sheetid 用于此功能