將Aspx編輯器與「生成自定義腳本」按鈕一起使用時,嵌入任意HTML標記(例如<audio>
)的唯一支持方式是使用PXLiteral控件。下面是如果直接輸入到.aspx的編輯器,你會如何使用PXLiteral控制的例子:
<px:PXLiteral runat="server" Text="<h1>Test!</h1>" />
一旦腳本已經生成,可以編輯從佈局編輯器的控件的屬性。
對於這個特定的場景,我會建議一個稍微不同的方法,只涉及使用連接到PXDataSource控件的JavaScript代碼。第一步是建立在你的圖中的PXAction會被調用,當您點擊此按鈕:
public PXAction<Customer> test;
[PXUIField(DisplayName = "Test", MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Select, Enabled = false)]
[PXButton(ImageKey = PX.Web.UI.Sprite.Main.Process)]
public virtual IEnumerable Test(PXAdapter adapter)
{
//TODO: Do something useful
return adapter.Get();
}
爲簡單起見,我們假設你確定其主屏幕工具欄中的按鈕 - 但你可以也可以將其映射到您網頁某處的PXButton
控件。
然後,使用佈局編輯器,我們將通過將其拖動到窗體來添加JavaScript控件。 ![JavaScript control](https://i.stack.imgur.com/nxMtG.png)
添加JavaScript控件後,請轉到屬性部分並設置腳本。該腳本需要設置爲單行,但可讀性這裏我們要使用的腳本的一個很好的格式化的版本:
function commandResult(ds, context)
{
if (context.command == 'Test') // Test is the name of the PXAction we created earlier
{
var audio = new Audio('../../Sounds/Ding.wav');
audio.play();
}
}
注:Ding.wav文件是隨Acumatica,但是您可以自由使用來自另一個URL的聲音,或者隨自定義一起發佈聲音。如果使用外部URL,請確保使用正確的協議HTTP/HTTPS。
最後一步是掛鉤的數據源到你的JavaScript功能。爲此,請單擊佈局編輯器的「數據源」部分,從屬性編輯器中打開「客戶端事件」組,然後將CommandPerformed事件設置爲commandResult
,這是我們創建的JavaScript函數的名稱。
![Configuring the data source to invoke our custom function](https://i.stack.imgur.com/QzYG3.png)
發佈後,您會看到表格的工具欄上的測試按鈕。如果你點擊它,你會聽到一個很好的叮!
![The test button](https://i.stack.imgur.com/PL58D.png)
聲音將被無條件地出場,不管你PXAction
委託會發生什麼。如果只想在特定條件下播放聲音,一種方法是讀取由代表設置的屏幕上的字段內容,類似於IN305000頁面所做的操作:
var description = px_alls["edDescriptionPnl"];
if (description != null && description.getValue() != null)
{
var audio = new Audio('../../Sounds/Ding.wav');
audio.play();
}
你爲什麼問,然後回答你自己的問題? – Mike
http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/ – Gabriel