2012-05-24 2 views
0

Там две вещи, которые я не понимаю слишком хорошо в этом сценарииКак вызвать функцию в Page.ClientScript правильно

Во-первых, существует Javascript, что в этом формате

function Allocate() 
{ 
    this.Name = $("allocateName"); 
    this.AddAllocation = $("addAllocation"); 
    this.setCustom= $("setCustom"); 
} 
... some other initializations here 
Allocate.prototype.EnableAllocations = function() { 

this.enableAllAlloactions(); 
this.setCustomAllocations(); 
} 

Это просто пример, так это какой-то класс в Javascript? это находится в файле Allocate.js.

Мои вопросы следующие:

Если бы я должен был назвать EnableAllocations в виде Page.ClientScript.RegisterClientScriptBlock(...); как бы я сделать это?

ответ

0

Вы должны указать объект Allocate и вызвать его функцию EnableAllocations.

var alloc = new Allocate(); 
    alloc.EnableAllocations; 

Таким образом, вы можете создать строку с тха кода и передать его с помощью так:

Page.ClientScript.RegisterClientScriptBlock("key", 
    "var alloc = new Allocate();alloc.EnableAllocations;"); 
  • ПРИМЕЧАНИЕ: Вы можете использовать this.GetType() FullName в качестве ключа.. Вы не должны использовать один и тот же ключ для разных сценариев.

Этот метод устарел. Используйте вместо этого метод ClientScriptManager.RegisterClientScriptBlock (это зависит от того, какую версию используемой структуры вы используете).

Наконец, я не знаю, какую библиотеку вы используете, но $() исходит из какой-либо библиотеки. Таким образом, существует зависимость от этой библиотеки, а также от allocateName, addAllocation и т. Д., Какими бы они ни были.

Смежные вопросы