ASP.NET/SQL найти идентификатор элемента и обновить базу данных - PullRequest
1 голос
/ 12 октября 2010

Обычно у меня есть запрос на обновление, который запускается при нажатии кнопки отправки.

У меня есть 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, на котором человек нажал кнопку "Отправить", и я не могу понять, как.

Я хочу поместить этот идентификатор в строку или сеанс, чтобы его можно было использовать в SubmitDetails Sub

Любые идеи

Спасибо

Джейми

UPDATE

Вот моя подкоманда, как мне добавить сюда имя команды / аргумент команды?

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

Спасибо за помощь до сих пор

Jamie

Ответы [ 2 ]

4 голосов
/ 12 октября 2010

Измените ваш ретранслятор так:

<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 к вашей кнопке ссылки.Затем используйте событие 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
2 голосов
/ 12 октября 2010

Добавьте атрибуты «CommandName» и «CommandArgument» к кнопке ссылки с нужным идентификатором (в этом случае CoimmandArgument будет таким же, как идентификатор вашего div, а CommandName будет «Редактировать»). После этого вы можете получить доступ кидентификатор в событии Item_Command, вызывая свойство e.commandargument.Просто убедитесь, что вы сначала проверили, что e.CommandName предназначена для нужной кнопки, а не для кнопки «Добавить».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...