代码之家  ›  专栏  ›  技术社区  ›  Jamie Taylor

ASP.NET/SQL查找元素ID并更新数据库

  •  1
  • Jamie Taylor  · 技术社区  · 14 年前

    基本上,我有一个更新查询,当您单击提交按钮时运行。

    我有一个 asp:Repeater 在我的页面中有这样一个层

    <asp:Repeater id="dgBookings" runat="server" OnItemDataBound="ItemDB">
    
      <itemtemplate>
    
            <div class="bookingscontent">
    
            <div class="bookingdetails" id="<%# DataBinder.Eval(Container.DataItem, "booking_ref") %>">
                <p class="infotext"><%# DataBinder.Eval(Container.DataItem, "adults") %> <asp:LinkButton OnClick="EditDetails" Text="Edit..." runat="server"></asp:LinkButton></p>
                <p class="infotext"><asp:LinkButton OnClick="SubmitDetails" Text="Submit..." runat="server"></asp:LinkButton></p>
            </div>
    
            </div>
    
      </itemtemplate>
    
    <asp:Repeater>
    

    它输出这样的HTML

    <div class="bookingscontent">
    
            <div class="bookingdetails" id="AL05720">
                <p class="infotext">2</p>
                <p class="infotext"> <a href="javascript:__doPostBack('dgBookings$ctl00$ctl08','')">Submit...</a></span> <a class="EditAdults" href="#" onclick="return false">Edit...</a></p>
    
            </div>
    
    </div>
    
    
    <div class="bookingscontent">
    
            <div class="bookingdetails" id="BD45670">
                <p class="infotext">4</p>
                <p class="infotext"> <a href="javascript:__doPostBack('dgBookings$ctl00$ctl08','')">Submit...</a></span> <a class="EditAdults" href="#" onclick="return false">Edit...</a></p>
    
            </div>
    
    </div>
    

    基本上,我需要得到这个人点击提交的那个分区的ID,我不知道怎么做。

    我想将该ID放入字符串或会话中,以便在 SubmitDetails 附属的

    任何想法

    谢谢

    杰米

    更新

    这是我的子命令,我如何将命令名/命令参数添加到其中?

    Sub SubmitDetails(ByVal Sender as Object, ByVal e as EventArgs)
    
    Dim strPassedText = CommandArgument
    
    Dim LogData2 As sterm.markdata = New sterm.markdata()
    
    Dim queryUpdate as String = ("UPDATE OPENQUERY (dev,'SELECT * FROM web_data WHERE booking_ref = ''"+ strPassedText +"'' ') SET children = '1' ")
    
    Dim drSetUpdate As DataSet = LogData2.StermQ2(queryUpdate)
    
    Session("BookRefID") = strPassedText
    
    LoadData()
    
    End Sub
    

    谢谢你的帮助

    杰米

    2 回复  |  直到 14 年前
        1
  •  4
  •   Gabriel McAdams    14 年前

    修改中继器如下:

    <asp:Repeater id="dgBookings" runat="server" OnItemDataBound="ItemDB" OnItemCommand="ItemCommand">
    
      <itemtemplate>
    
            <div class="bookingscontent">
    
            <div class="bookingdetails" id="<%# DataBinder.Eval(Container.DataItem, "booking_ref") %>">
                <p class="infotext"><%# DataBinder.Eval(Container.DataItem, "adults") %> <asp:LinkButton OnClick="EditDetails" Text="Edit..." runat="server"></asp:LinkButton></p>
                <p class="infotext"><asp:LinkButton OnClick="SubmitDetails" Text="Submit..." runat="server" CommandName="SubmitDetails" CommandArgument="<%# DataBinder.Eval(Container.DataItem, "booking_ref") %>"></asp:LinkButton></p>
            </div>
    
            </div>
    
      </itemtemplate>
    
    <asp:Repeater>
    

    我在LinkButton中添加了一个commandArgument。然后使用转发器的项目_command事件查看参数(在e.commandArgument中)。这样地:

    Sub SubmitDetails(ByVal Sender as Object, ByVal e as RepeaterCommandEventArgs)
    
        Dim strPassedText = e.CommandArgument
    
        Dim LogData2 As sterm.markdata = New sterm.markdata()
    
        Dim queryUpdate as String = ("UPDATE OPENQUERY (dev,'SELECT * FROM web_data WHERE booking_ref = ''"+ strPassedText +"'' ') SET children = '1' ")
    
        Dim drSetUpdate As DataSet = LogData2.StermQ2(queryUpdate)
    
        Session("BookRefID") = strPassedText
    
        LoadData()
    
    End Sub
    
        2
  •  2
  •   Steven Raines    14 年前

    将“commandname”和“commandArgument”属性添加到具有所需ID的链接按钮(在本例中,coimmandargument将与DIV的ID相同,commandname将为“edit”),然后可以通过调用属性e.commandArgument来访问item_command事件中的ID。只需确保您首先检查e.commandname是否是您想要的按钮,而不是像“添加”按钮那样。