【问题标题】:Passing Gridview Row's ID to new webpage将 Gridview Row 的 ID 传递给新网页
【发布时间】:2015-03-11 22:33:46
【问题描述】:

我有一个 gridview,在我的数据库中有一个 ID 列 - WorkHoursNotRecordID,我正在尝试将值传递给新网页。除了这个 ID,我可以让所有其他值传递到新网页。在我的 SQL 数据库中,它是表中的主键。我想我有一些语法错误,但我无法弄清楚。我将尝试仅包含具有此 WorkHoursNotRecordID 的代码。

在Gridview网页aspx中:

   <asp:BoundField DataField="WorkHoursNotRecordID" 
      ItemStyle-Width="120px"
      SortExpression="Description" />

...

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:TimeSQLConnectionString1 %>" 
    SelectCommand="SELECT tblWorkHoursNotRecord.EmployeeName, tblWorkHoursNotRecord.BeginDateOff, tblWorkHoursNotRecord.EndDateOff, tblWorkHoursNotRecord.AllDay_YesNo, tblWorkHoursNotRecord.BeginTimeOff, tblWorkHoursNotRecord.EndTimeOff, tblEmployees.Login, tblCodesWorkNotRec.Description, tblWorkHoursNotRecord.WorkHoursNotRecordID FROM tblWorkHoursNotRecord INNER JOIN tblCodesWorkNotRec ON tblWorkHoursNotRecord.WorkCode = tblCodesWorkNotRec.WorkCodeID INNER JOIN tblEmployees ON tblWorkHoursNotRecord.Employee = tblEmployees.EmployeeID WHERE (tblEmployees.Login = @username) ORDER BY tblWorkHoursNotRecord.BeginDateOff DESC"
     OnSelecting="SqlDataSource1_Selecting">
    <SelectParameters>
        <asp:QueryStringParameter Name="username" />
    </SelectParameters>
</asp:SqlDataSource>

在Gridview网页vb中:

Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles GridView1.SelectedIndexChanged
    Dim row As GridViewRow = GridView1.SelectedRow
    If row IsNot Nothing Then
        'Change the cell index number as per your grid cell index
        Response.Redirect("TimeOffNoRequestEdit.aspx?BeginDateOff=" + row.Cells(1).Text.ToString() + "&EndDateOff=" + row.Cells(2).Text.ToString() + "&BeginTimeOff=" + row.Cells(4).Text.ToString() + "&EndTimeOff=" + row.Cells(5).Text.ToString() + "&AllDay_YesNo=" + CType(row.Cells(3).Controls(0), CheckBox).Checked.ToString() + "&WorkCode=" + row.Cells(6).Text.ToString() + "&Description=" + row.Cells(6).Text.ToString()) ', +"&WorkHoursNotRecordID=" + row.Cells(9).Text.ToString())

    End If

End Sub

在新网页的aspx中:

<asp:TextBox ID="wkid" runat="server"></asp:TextBox>

在新网页的vb Page_load中:

        wkid.Text = Request.QueryString("WorkHoursNotRecordID").ToString()

提前感谢您能给我的任何帮助!

【问题讨论】:

  • 为什么Response.Redirect中连接WorkHoursNotRecordID的代码被注释掉了?它会导致某种错误吗?我无法从您的问题中看出问题所在。
  • 开枪!我发送了带有注释的那个,以便我可以测试其他内容。它不应该被注释掉。所以,从我的代码(没有注释掉 - 呵呵),它应该传递 id 的值?
  • Mark - 感谢您让我查看除上述代码之外的其他内容。这是我的代码序列。请参阅下面的帖子。

标签: asp.net vb.net gridview


【解决方案1】:

这是我的编码错误。如果另一个字段等于一个值,我需要将代码 wkid.Text = Request.QueryString("WorkHoursNotRecordID").ToString() 放在我结束的代码之前。好吧,我一直选择错误的行来测试,代码结束了,因为它等于值。只是交换了序列,它起作用了。感谢您的所有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多