基于 LinkButton 在另一个页面上创建 SQL 语句
Create SQL statement on another page based on LinkButton
我有一个简单的table如下图:
当用户单击模板字段 Link 按钮时,它应该发送到另一个页面并将信息填写到以下文本框中:
我希望能够填充 SQL 语句,该语句使用 table 的信息来填充数据库中的信息:
下面是我的网格视图:
<Columns>
asp:TemplateField HeaderText="Action" SortExpression="Date">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="view" >Display</asp:LinkButton>
</ItemTemplate>
<ControlStyle Width="45px" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100px" />
</asp:TemplateField>
<asp:BoundField DataField="Classid" HeaderText="ID"
SortExpression="Date" >
<ItemStyle cssClass="grid_padding" />
</asp:BoundField>
<asp:BoundField DataField="Addate" HeaderText="Date" SortExpression="Date"
DataFormatString="{0:d}" >
<ItemStyle cssClass="grid_padding" />
</asp:BoundField>
<asp:BoundField DataField="username" HeaderText="User Name"
SortExpression="Date" >
<ItemStyle cssClass="grid_padding" />
</asp:BoundField>
<asp:BoundField DataField="category" HeaderText="Category" SortExpression="Date">
<ItemStyle cssClass="grid_padding" />
</asp:BoundField>
<asp:BoundField DataField="description" HeaderText="Description"
SortExpression="Date" >
<ItemStyle CssClass="grid_padding2" />
</asp:BoundField>
</Columns>
这是我目前为 Link 按钮所处的位置(更新:所有注释掉的行都会给我错误,因此它们不起作用):
Protected Sub DisplayClassifieds_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DisplayClassifieds.SelectedIndexChanged
Dim strSelect As String
Dim strFilter As String = " "
Dim counter As Integer = 0
Dim v As Integer = 0
'cell = DisplayClassifieds[0,Row].Value
'cell = DisplayClassifieds.Rows(e.NewSelectedIndex).Cells(0).Text
'strFilter = DisplayClassifieds.SelectedRowStyle(0).Value
strSelect = "SELECT Classid, Addate, Username, Category, Description, Fulldescription FROM TABLENAME WHERE Classid = '" & strFilter & "' "
Page.Session.Add("Display_Values", strSelect)
Response.Redirect("DispAd.aspx")
End Sub
我对 vb.net GridView 有点生疏,因为我一直在将 DataGridViews 与 WinForms 一起使用,但它们基本相同。像这样的事情应该会让你朝着正确的方向前进。这应该进入您的模板按钮点击事件
dim ID as string = DataGridView1.Rows(e.RowIndex).Cells("ID").Value
dim Date as string = DataGridView1.Rows(e.RowIndex).Cells("Date").Value
继续为您需要从中获取数据的所有列执行此操作,然后您可以使用会话变量将您的 ID、日期变量传递到下一页
尝试了很多次,但 SelectedRow.Cells(1).Text... 或 .Value 给我带来了问题,所以我拆分了我的命令:
Dim row As GridViewRow = DisplayClassifieds.SelectedRow
strFilter = row.Cells(1).Text
有了这个,我得到了我的 "ID" 值,足以用于我的 SQL
我有一个简单的table如下图:
当用户单击模板字段 Link 按钮时,它应该发送到另一个页面并将信息填写到以下文本框中:
我希望能够填充 SQL 语句,该语句使用 table 的信息来填充数据库中的信息:
下面是我的网格视图:
<Columns>
asp:TemplateField HeaderText="Action" SortExpression="Date">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="view" >Display</asp:LinkButton>
</ItemTemplate>
<ControlStyle Width="45px" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100px" />
</asp:TemplateField>
<asp:BoundField DataField="Classid" HeaderText="ID"
SortExpression="Date" >
<ItemStyle cssClass="grid_padding" />
</asp:BoundField>
<asp:BoundField DataField="Addate" HeaderText="Date" SortExpression="Date"
DataFormatString="{0:d}" >
<ItemStyle cssClass="grid_padding" />
</asp:BoundField>
<asp:BoundField DataField="username" HeaderText="User Name"
SortExpression="Date" >
<ItemStyle cssClass="grid_padding" />
</asp:BoundField>
<asp:BoundField DataField="category" HeaderText="Category" SortExpression="Date">
<ItemStyle cssClass="grid_padding" />
</asp:BoundField>
<asp:BoundField DataField="description" HeaderText="Description"
SortExpression="Date" >
<ItemStyle CssClass="grid_padding2" />
</asp:BoundField>
</Columns>
这是我目前为 Link 按钮所处的位置(更新:所有注释掉的行都会给我错误,因此它们不起作用):
Protected Sub DisplayClassifieds_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DisplayClassifieds.SelectedIndexChanged
Dim strSelect As String
Dim strFilter As String = " "
Dim counter As Integer = 0
Dim v As Integer = 0
'cell = DisplayClassifieds[0,Row].Value
'cell = DisplayClassifieds.Rows(e.NewSelectedIndex).Cells(0).Text
'strFilter = DisplayClassifieds.SelectedRowStyle(0).Value
strSelect = "SELECT Classid, Addate, Username, Category, Description, Fulldescription FROM TABLENAME WHERE Classid = '" & strFilter & "' "
Page.Session.Add("Display_Values", strSelect)
Response.Redirect("DispAd.aspx")
End Sub
我对 vb.net GridView 有点生疏,因为我一直在将 DataGridViews 与 WinForms 一起使用,但它们基本相同。像这样的事情应该会让你朝着正确的方向前进。这应该进入您的模板按钮点击事件
dim ID as string = DataGridView1.Rows(e.RowIndex).Cells("ID").Value
dim Date as string = DataGridView1.Rows(e.RowIndex).Cells("Date").Value
继续为您需要从中获取数据的所有列执行此操作,然后您可以使用会话变量将您的 ID、日期变量传递到下一页
尝试了很多次,但 SelectedRow.Cells(1).Text... 或 .Value 给我带来了问题,所以我拆分了我的命令:
Dim row As GridViewRow = DisplayClassifieds.SelectedRow
strFilter = row.Cells(1).Text
有了这个,我得到了我的 "ID" 值,足以用于我的 SQL