基于LinkBut​​ton在另一个页面上创建SQL语句

Posted

技术标签:

【中文标题】基于LinkBut​​ton在另一个页面上创建SQL语句【英文标题】:Create SQL statement on another page based on LinkButton 【发布时间】:2015-06-23 13:05:24 【问题描述】:

我有一个简单的表格,如下图:

当用户点击模板字段链接按钮时,它应该发送到另一个页面并将信息填写到以下文本框中:

我希望能够填充一条 SQL 语句,该语句使用表的信息来填充数据库中的信息:

下面是我的网格视图:

<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>

到目前为止,这是链接按钮的位置(更新:所有注释掉的行都会给我错误,因此它们不起作用):

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

【问题讨论】:

那么您是否只需要帮助将值从一个页面传递到另一个页面? 我需要帮助从单击显示按钮的行中获取 gridview 单元格值。如果我可以得到像strFilter = cell[0] 这样的行的值,那么我可以在我的SQL 语句@user3841709 中使用该值 .SelectedRow 向我抛出一个错误,它不是 GridView 的成员,所以我不确定我的 Protected Sub DisplayClassifieds_RowCommand(sender As Object, e As System.Web.UI.WebControls 是错误的还是其他的。 【参考方案1】:

我的 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、日期变量传递到下一页

【讨论】:

感谢您的帮助。我过去曾尝试过,但 RowIndex 会引发错误。经过这么多尝试,我终于想通了【参考方案2】:

尝试了很多次,但 SelectedRow.Cells(1).Text... 或 .Value 给我带来了问题,所以我拆分了我的命令:

Dim row As GridViewRow = DisplayClassifieds.SelectedRow
strFilter = row.Cells(1).Text

有了这个,我得到了足够用于我的 SQL 的“ID”值

【讨论】:

以上是关于基于LinkBut​​ton在另一个页面上创建SQL语句的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 和 LinkBut​​tons,或常规按钮和 CSS

回发前在 Jquery LinkBut​​ton 中验证表单(使用 Html Validate)

为啥 GridView 中的 LinkBut​​ton 不会引发其 OnClick 事件?

由 UpdatePanel 内 GridView 内的 LinkBut​​ton 触发的完整回发

当 Gtk.Box 在任何地方单击时如何打开网页,尽管其中有 Gtk.LinkBut​​ton 链接?

UpdatePanel 中 ListView 中的 LinkBut​​ton 导致完全回发