как передать значение сеанса во внешний файл js - PullRequest
0 голосов
/ 30 ноября 2009

у меня есть две страницы upl.aspx и datalist.aspx

У меня есть iframe на странице upl.aspx, которая загружает datalist.aspx

сейчас я создаю сеанс по щелчку радио-кнопки, который находится внутри списка данных. я хочу передать это значение сеанса во внешний файл js, чтобы теперь у меня есть функция Hidee () на странице uploo.aspx, которая может показать ее значение

КАК ЭТО СДЕЛАТЬ ??

вот мой код для up1.aspx

<a onclick="Hidee();" style="cursor: pointer">close</a></div>

<iframe id="frame1" frameborder="0" name="frame1" src="datalist.aspx"></iframe>

это из datalist.aspx, в котором у меня есть мой datalist

<td align="center" > 


                <asp:RadioButton ID="rdb" runat="server"     CssClass="radio" AutoPostBack="True" OnCheckedChanged="rdb_click" /> 


                <asp:HiddenField ID="HiddenField1" runat="server" Value = '<%#Eval("FileName")%>' /> 
                </td>
                </tr>  

здесь есть код за datalist.cs

public void rdb_click(object sender, EventArgs e)
    {
        string value = "";
        for (int i = 0; i < DataList1.Items.Count; i++)
        {
            RadioButton rdb1;
            rdb1 = (RadioButton)DataList1.Items[i].FindControl("rdb");
            if (rdb1 != null)
            {
                if (rdb1.Checked)
                {
                    HiddenField hf = (HiddenField)DataList1.Items[i].FindControl("HiddenField1");
                    value = hf.Value.ToString();
                }
            }
        }
        Session["Background1"] = value;
        Label2.Text = value;

    }

и в моем внешнем JavaScript есть функция Hidee ();

function Hidee()
{
var div2 = document.getElementById( "divframe1" ); 
div2.style.display = "none";
var div3 = document.getElementById( "aa" );
div3.style.display = "block";
var session ='<%= Session["Background1"] %>';
alert("you have selected" + session);
}

1 Ответ

3 голосов
/ 30 ноября 2009

Если upl.aspx и datalist.aspx являются частью двух разных приложений ASP.NET (размещенных в разных пулах приложений в IIS), разделить сеанс между ними будет невозможно. Возможный обходной путь - передать значения в качестве параметров url.


UPDATE:

Вы не можете использовать выражения на стороне сервера во внешних файлах JavaScript. Вы можете объявить глобальную переменную на своей странице aspx, которая будет содержать значение, которое будет использоваться в вашем файле JavaScript:

На странице aspx:

<script type="text/javascript">
    var background = '<%= Session["Background1"] %>';
</script>

и затем вы можете использовать переменную background в функции Hidee внутри вашего файла javascript.

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