2010-10-12 50 views
1

基本上我有一个更新查询,当你点击一个提交按钮时运行。ASP.NET/SQL查找元素ID并更新数据库

我有我的第一个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> 

基本上我需要得到div的ID,而该人已点击提交,我无法弄清楚如何。

我希望把他们的ID转换成字符串或会话,以便它可以在SubmitDetails

任何想法

使用

感谢

杰米

UPDATE

这是我的Sub命令如何添加命令名称/命令参数进入这个?

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 

感谢您的帮助迄今

杰米

回答

4

修改您的转发器是这样的:

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

我添加了一个CommandArgument你的LinkBut​​ton。然后使用中继器的Item_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 
+0

我已经添加了'CommandArgument',但是如何添加Item_command?我已经更新了上面的问题 - 感谢迄今的帮助 – 2010-10-12 16:30:08

+0

查看我的修改答案(基本上,将OnItemCommand添加到中继器并将其指向代码文件中的方法)。 – 2010-10-12 16:32:44

+0

补充说,但我怎么让'strPassedText'命令参数的值? – 2010-10-12 16:46:20

2

添加“的CommandName”和“CommandArgument”属性,你的链接按钮与您希望(在这种情况下,CoimmandArgument会与您的股利和CommandName的是ID的ID“编辑“)然后,您可以通过调用属性e.commandargument来访问Item_Command事件中的标识。只要确保你首先检查e.CommandName是否是你想要的按钮,而不是像“添加”按钮。