Пытанні, якія патрабуюць функцыі JavaScript з C # код ззаду (.NET)

Я даволі новы для шлюбу C# і JavaScript у адным дадатку. Я думаю, што я павінен быць не хапае нейкі важны кавалак прымусіць іх працаваць разам. Выклік майго яваскрипта функцыі з маёй коды не прыводзіць да выніку я чакаю, але не прыводзіць да памылкі небудзь. Проста нічога не адбываецца. Я займаюся распрацоўкай з Visual Studio 2010, і калі ёсць, як адладчык для JS ўбудоўваецца, я не ведаю, дзе яго знайсці - не ў стане пакрокава робіць гэта значна больш абцяжваючай.

У маёй .aspx (абодва значэння «ИмяПоля» адбываюцца з іншай частцы кода):

<script language ="javascript">
    var idSelection;
    var nameSelection;
    function selectRow(idItem, nameItem) {
        idSelection = idItem;
        nameSelection = nameItem;
        alert(idSelection + " " + nameSelection);
        var targetIdValue;
        var targetForm = window.opener.document.forms(0);
        eval("targetForm." + targetIdFieldName + ".value = '" + idSelection + "';");
        eval("targetForm." + targetNameFieldName + ".value = '" + nameSelection + "';");
        window.close();
    }
</script>

І мой заклік:

        protected void AppGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
        {
                txthidAppId = (HtmlInputHidden)Session["hidAppId_rvte"];
                txtAppName = (TextBox)Session["txtAppName_rvte"];

                txthidAppId.Value = selectedApp.Id;
                txtAppName.Text = selectedApp.Name;

                Page.ClientScript.RegisterStartupScript(GetType(), "SelectApp", "selectRow(" + txthidAppId.Value + ", " + txtAppName.Text + ")", true);
}
0
Вы спрабавалі выкананне простага аператара папярэджанні ад C#, каб пераканацца, што гэта не праблема з самай функцыяй? Проста каб убачыць, калі згенераваны Javascript апрацоўваецца?
дададзена аўтар Smeegs, крыніца
Вы спрабавалі выкананне простага аператара папярэджанні ад C#, каб пераканацца, што гэта не праблема з самай функцыяй? Проста каб убачыць, калі згенераваны Javascript апрацоўваецца?
дададзена аўтар Smeegs, крыніца
Карыстаецеся Ці вы абнаўленне панэлі на гэтай старонцы?
дададзена аўтар Smeegs, крыніца
Я стварыў асобную функцыю называюць проста «clickedAlert ()", і яна працавала. Мая галоўная праблема заключаецца ў адсутнасці памылак, я паняцця не маю, куды ісці, таму што няма, здавалася б, нічога дрэннага ...
дададзена аўтар MrCarder, крыніца
Я стварыў асобную функцыю называюць проста «clickedAlert ()", і яна працавала. Мая галоўная праблема заключаецца ў адсутнасці памылак, я паняцця не маю, куды ісці, таму што няма, здавалася б, нічога дрэннага ...
дададзена аўтар MrCarder, крыніца
Я стварыў асобную функцыю называюць проста «clickedAlert ()", і яна працавала. Мая галоўная праблема заключаецца ў адсутнасці памылак, я паняцця не маю, куды ісці, таму што няма, здавалася б, нічога дрэннага ...
дададзена аўтар MrCarder, крыніца
Я стварыў асобную функцыю называюць проста «clickedAlert ()", і яна працавала. Мая галоўная праблема заключаецца ў адсутнасці памылак, я паняцця не маю, куды ісці, таму што няма, здавалася б, нічога дрэннага ...
дададзена аўтар MrCarder, крыніца
Я не выкарыстоўваю ніякіх абнаўленняў панэляў.
дададзена аўтар MrCarder, крыніца
Я не выкарыстоўваю ніякіх абнаўленняў панэляў.
дададзена аўтар MrCarder, крыніца

11 адказы

Не цалкам упэўнены, што вы спрабуеце дасягнуць, аднак, у вас ёсць некаторыя праблемы сінтаксісу ў вашым JavaScript.

<�Р> selectRow ( "+ txthidAppId.Value +", "+ txtAppName.Text +") </р>

павінна быць

<�Р> selectRow ( "+ txthidAppId.Value +", '+ txtAppName.Text +') </р>

Звярніце ўвагу на або апостраф вакол txtAppName.Text значэнне. Вы пасылаеце радкі, так што Javascript трэба іх праходзіць праз такія, як, у адваротным выпадку ён разглядае іх як аб'екты.

Я раю вам усталяваць Firefox і FireBug для Firefox ( http://getfirebug.com/ ) - гэта дасць вам добры распрацоўшчык адладчык JavaScript, і пакажа вам, што памылка адразу.

2
дададзена
Вы таксама павінны быць асцярожныя ў адзінарных двукоссях ў вашым тэкставым полі.
дададзена аўтар Cᴏʀʏ, крыніца
Гульня вакол з двукоссямі, гэта на самай справе не рашэнне, якое я шукаў. Некалькі розных варыянты (у тым ліку адзін, публікуемыя тут) зрабілі тое ж [адсутнасць] вынікаў. FireBug выглядае шматабяцальным, хоць, дзякуй за рэкамендацыю!
дададзена аўтар MrCarder, крыніца

Не цалкам упэўнены, што вы спрабуеце дасягнуць, аднак, у вас ёсць некаторыя праблемы сінтаксісу ў вашым JavaScript.

<�Р> selectRow ( "+ txthidAppId.Value +", "+ txtAppName.Text +") </р>

павінна быць

<�Р> selectRow ( "+ txthidAppId.Value +", '+ txtAppName.Text +') </р>

Звярніце ўвагу на або апостраф вакол txtAppName.Text значэнне. Вы пасылаеце радкі, так што Javascript трэба іх праходзіць праз такія, як, у адваротным выпадку ён разглядае іх як аб'екты.

Я раю вам усталяваць Firefox і FireBug для Firefox ( http://getfirebug.com/ ) - гэта дасць вам добры распрацоўшчык адладчык JavaScript, і пакажа вам, што памылка адразу.

2
дададзена
Вы таксама павінны быць асцярожныя ў адзінарных двукоссях ў вашым тэкставым полі.
дададзена аўтар Cᴏʀʏ, крыніца
Гульня вакол з двукоссямі, гэта на самай справе не рашэнне, якое я шукаў. Некалькі розных варыянты (у тым ліку адзін, публікуемыя тут) зрабілі тое ж [адсутнасць] вынікаў. FireBug выглядае шматабяцальным, хоць, дзякуй за рэкамендацыю!
дададзена аўтар MrCarder, крыніца

Не цалкам упэўнены, што вы спрабуеце дасягнуць, аднак, у вас ёсць некаторыя праблемы сінтаксісу ў вашым JavaScript.

<�Р> selectRow ( "+ txthidAppId.Value +", "+ txtAppName.Text +") </р>

павінна быць

<�Р> selectRow ( "+ txthidAppId.Value +", '+ txtAppName.Text +') </р>

Звярніце ўвагу на або апостраф вакол txtAppName.Text значэнне. Вы пасылаеце радкі, так што Javascript трэба іх праходзіць праз такія, як, у адваротным выпадку ён разглядае іх як аб'екты.

Я раю вам усталяваць Firefox і FireBug для Firefox ( http://getfirebug.com/ ) - гэта дасць вам добры распрацоўшчык адладчык JavaScript, і пакажа вам, што памылка адразу.

2
дададзена
Вы таксама павінны быць асцярожныя ў адзінарных двукоссях ў вашым тэкставым полі.
дададзена аўтар Cᴏʀʏ, крыніца
Гульня вакол з двукоссямі, гэта на самай справе не рашэнне, якое я шукаў. Некалькі розных варыянты (у тым ліку адзін, публікуемыя тут) зрабілі тое ж [адсутнасць] вынікаў. FireBug выглядае шматабяцальным, хоць, дзякуй за рэкамендацыю!
дададзена аўтар MrCarder, крыніца

Не цалкам упэўнены, што вы спрабуеце дасягнуць, аднак, у вас ёсць некаторыя праблемы сінтаксісу ў вашым JavaScript.

<�Р> selectRow ( "+ txthidAppId.Value +", "+ txtAppName.Text +") </р>

павінна быць

<�Р> selectRow ( "+ txthidAppId.Value +", '+ txtAppName.Text +') </р>

Звярніце ўвагу на або апостраф вакол txtAppName.Text значэнне. Вы пасылаеце радкі, так што Javascript трэба іх праходзіць праз такія, як, у адваротным выпадку ён разглядае іх як аб'екты.

Я раю вам усталяваць Firefox і FireBug для Firefox ( http://getfirebug.com/ ) - гэта дасць вам добры распрацоўшчык адладчык JavaScript, і пакажа вам, што памылка адразу.

2
дададзена
Вы таксама павінны быць асцярожныя ў адзінарных двукоссях ў вашым тэкставым полі.
дададзена аўтар Cᴏʀʏ, крыніца
Гульня вакол з двукоссямі, гэта на самай справе не рашэнне, якое я шукаў. Некалькі розных варыянты (у тым ліку адзін, публікуемыя тут) зрабілі тое ж [адсутнасць] вынікаў. FireBug выглядае шматабяцальным, хоць, дзякуй за рэкамендацыю!
дададзена аўтар MrCarder, крыніца

Я не бачу нічога дрэннага. Што б я зрабіць, гэта паспрабаваць змяніць мову = JavaScript для ўводу = "тэкст/JavaScript» ў тэгу сцэнара.

Акрамя таго, я хацеў бы змяніць

Page.ClientScript.RegisterStartupScript(GetType(), "SelectApp", "selectRow(" + txthidAppId.Value + ", " + txtAppName.Text + ")", true);

у

Page.ClientScript.RegisterStartupScript(Page.GetType(), "SelectApp", "selectRow(" + txthidAppId.Value + ", " + txtAppName.Text + ")", true);
1
дададзена

Я не бачу нічога дрэннага. Што б я зрабіць, гэта паспрабаваць змяніць мову = JavaScript для ўводу = "тэкст/JavaScript» ў тэгу сцэнара.

Акрамя таго, я хацеў бы змяніць

Page.ClientScript.RegisterStartupScript(GetType(), "SelectApp", "selectRow(" + txthidAppId.Value + ", " + txtAppName.Text + ")", true);

у

Page.ClientScript.RegisterStartupScript(Page.GetType(), "SelectApp", "selectRow(" + txthidAppId.Value + ", " + txtAppName.Text + ")", true);
1
дададзена

Я не бачу нічога дрэннага. Што б я зрабіць, гэта паспрабаваць змяніць мову = JavaScript для ўводу = "тэкст/JavaScript» ў тэгу сцэнара.

Акрамя таго, я хацеў бы змяніць

Page.ClientScript.RegisterStartupScript(GetType(), "SelectApp", "selectRow(" + txthidAppId.Value + ", " + txtAppName.Text + ")", true);

у

Page.ClientScript.RegisterStartupScript(Page.GetType(), "SelectApp", "selectRow(" + txthidAppId.Value + ", " + txtAppName.Text + ")", true);
1
дададзена

Вы павінны дадаць QuatationMarks ў радок параметраў. Я напісаў метад пашырэння для гэтага;

    public static string AddQuatationMark(this string value)
    {
        string retStr = "";
        retStr = "" + "'" + value + "'" + "";
        return retStr;
    }

І з дапамогай гэтага метаду на ваш код;

"selectRow(" + txthidAppId.Value.AddQuatationMark() + ", " + txtAppName.Text.AddQuatationMark() + ")"
0
дададзена

Вы павінны дадаць QuatationMarks ў радок параметраў. Я напісаў метад пашырэння для гэтага;

    public static string AddQuatationMark(this string value)
    {
        string retStr = "";
        retStr = "" + "'" + value + "'" + "";
        return retStr;
    }

І з дапамогай гэтага метаду на ваш код;

"selectRow(" + txthidAppId.Value.AddQuatationMark() + ", " + txtAppName.Text.AddQuatationMark() + ")"
0
дададзена

Вы павінны дадаць QuatationMarks ў радок параметраў. Я напісаў метад пашырэння для гэтага;

    public static string AddQuatationMark(this string value)
    {
        string retStr = "";
        retStr = "" + "'" + value + "'" + "";
        return retStr;
    }

І з дапамогай гэтага метаду на ваш код;

"selectRow(" + txthidAppId.Value.AddQuatationMark() + ", " + txtAppName.Text.AddQuatationMark() + ")"
0
дададзена

Вы павінны дадаць QuatationMarks ў радок параметраў. Я напісаў метад пашырэння для гэтага;

    public static string AddQuatationMark(this string value)
    {
        string retStr = "";
        retStr = "" + "'" + value + "'" + "";
        return retStr;
    }

І з дапамогай гэтага метаду на ваш код;

"selectRow(" + txthidAppId.Value.AddQuatationMark() + ", " + txtAppName.Text.AddQuatationMark() + ")"
0
дададзена