Передача переменной JavaScript в источник данных SQL в ASP.Net C # - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть переменная java-скрипта, и я хочу использовать ее в моем sqldatasourse, как мне это сделать.Вот мой код java-скрипта

var div = document.getElementById('main_content').offsetHeight;
            var length = Mah.round(div / 400);

И я хочу использовать переменную длину здесь в команде выбора

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:qbuyConnectionString1 %>" 
         SelectCommand="SELECT TOP variable * FROM [advertisement] WHERE ([enable] = @enable) ORDER BY NEWID()">
        <SelectParameters><asp:Parameter DefaultValue="1" Name="enable" Type="Int32" /></SelectParameters>
</asp:SqlDataSource>

Ответы [ 3 ]

0 голосов
/ 14 февраля 2012

Вам необходимо отправить переменную JS на сервер, используя AJAX. Предполагая, что ваша ASP-страница называется query.asp, вы можете использовать jQuery для выполнения следующих действий.

$.get('query.asp', {length: length});

Теперь ваша ASP-страница может получить к ней доступ как Request.QueryString('length')

0 голосов
/ 25 июля 2012

Самым простым решением, основанным на том, как вы пытаетесь это сделать, является комбинация некоторых из вышеупомянутых предложений.

  1. Создайте на своей странице скрытый элемент управления ASP.NET на стороне сервера.
  2. Установите для элемента управления скрытого поля на стороне сервера значение переменной JavaScript.
  3. В событии _Selecting, которое срабатывает до обращения к базе данных, установите значение «Параметр»на скрытый серверный элемент управления.

Шаг 1:

<!--Create an ASP.NET hidden field server control-->
<asp:HiddenField ID="HiddenField1" runat="server" />

Шаг 2:

//JavaScript you were using populating the 'length' variable:
var div = document.getElementById('main_content').offsetHeight;
var length = Mah.round(div / 400);
//Now set the hidden field's value to your JS variable value:
document.getElementById('<%= HiddenField1.ClientId %>');

Шаг 3:

protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
    //The 'Selecting' event fires *prior* to the wired up Select method being called.
    //This is the spot to add in or modify any of the parameter values:
    e.Command.Parameters["LengthParameter"].Value = this.HiddenField1.Value;
}
0 голосов
/ 13 февраля 2012

ну, вы можете создать скрытый элемент и вставить в него значение из js, затем прочитать его из c # и вставить его в базу данных.

HTML

<input type="hidden" id="dataForSQL"></input>

JS

$('#dataForSQL').html(length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...