我有一个DevExpress()。网站上的按钮应该从焦点行获取特定网格值并将其传递给外部函数。
这是我的按钮:
@Html.DevExpress().Button(
settings =>
{
settings.Name = "btnMyName";
settings.Width = 120;
settings.Height = 25;
settings.Text = "MyText";
settings.Styles.Native = true;
settings.ClientEnabled = true;
settings.ClientSideEvents.Click = "function(s, e) { gridView.GetRowValues(gridView.GetFocusedRowIndex(), 'MyValue', OnGetRowValues); }";
}).GetHtml()
我根本无法达到OnGetRowValues函数 - 总是得到相同的异常:
未捕获的ReferenceError:未定义OnGetRowValues
我将脚本放在与.cshtml文件相同的文件夹中,并尝试以相对和绝对的方式使用<script src=""></script>
引用它。我试图让代码直接在脚本标签之间运行到cshtml页面,但没有任何作用,我总是得到相同的错误。到目前为止唯一的解决方案是将整个脚本作为ClientSideEvents.Click的辅助,但由于OnGetRowValues函数很大,它将变得凌乱且彻头彻尾的不切实际的解决方案。任何帮助将不胜感激。
答案 0 :(得分:1)
浏览Client-Side Events文档并使用以下示例实现:
<script type="text/javascript" src="~/Content/js/index.js"></script>
<script type="text/javascript">
function ButtonClick(s,e)
{
gridView.GetRowValues(gridView.GetFocusedRowIndex(), 'ShipName', OnGetRowValues);
}
</script>
@Html.DevExpress().Button(settings =>
{
settings.Name = "btnGetSelectedRowValue";
settings.UseSubmitBehavior = true;
settings.ClientSideEvents.Click = "ButtonClick";
}).GetHtml()
@Html.Action("GridViewPartial")
index.js
// Value contains the "EmployeeID" field value returned from the server, not the list of values
function OnGetRowValues(Value) {
// Right code
alert(Value);
// This code will cause an error
// alert(Value[0]);
}
希望这有帮助..