ASP.NET 如何将容器值作为 javascript 参数传递

标签 asp.net javascript grid obout

我正在使用oBout Grid control在文本框中带有模板。

我想将参数传递给 JavaScript,即用户单击网格时网格的当前行索引。

但是结果

    onClick='setGridInEditMode(<%# Container.RecordIndex %>);' />

结果为

     onClick="setGridInEditMode(&lt;%# Container.RecordIndex %>);"

有没有办法将容器值传递给 JavaScript?

这是有问题的标记。

<cc1:Grid ID="_TrustGrid" runat="server"
        FolderStyle="Styles/style_7"
        AllowAddingRecords="False" 
        AllowSorting="false"
        AllowPageSizeSelection="False"
        AllowPaging="False"
        AllowMultiRecordEditing="true"
        AutoGenerateColumns="False" 
        OnUpdatecommand="_TrustGrid_UpdateCommand"
        OnRebind="_TrustGrid_Rebind">
    <Columns>
        <cc1:Column AllowEdit="true" AllowDelete="false" HeaderText="Edit" Width="130" runat="server" />
        <cc1:Column DataField="TrustDocID" HeaderText="TrustDocID" Width="125" ReadOnly="false" AllowDelete="false" TemplateId="trustDocIDGridTemplate" />
    </Columns>
    <Templates>
        <cc1:GridTemplate ID="trustDocIDGridTemplate" ControlID="tb1" runat="server">
            <Template>
                <asp:TextBox ID="trustDocIDTextBox" runat="server" 
                    Visible="true"
                    Text='<%# Container.Value %>'
                    onClick= 'setGridInEditMode(<%# Container.RecordIndex %>);' />
            </Template>
        </cc1:GridTemplate>
    </Templates>
</cc1:Grid>

最佳答案

我赞同达林关于使用不引人注目的 JavaScript 的呼吁。但是,这并不能回答您关于 ASP.NET 为何这样做的问题。

你得到的原因

onClick="setGridInEditMode(&lt;%# Container.RecordIndex %>);"

是因为到服务器控件属性的数据绑定(bind)要求您直接绑定(bind)到属性,无需插入文本。这意味着,只有 Property="<%# ... %>"是允许的。

因此,就您而言,您需要以迂回的方式说出您想要的内容(尽管我个人认为这更清晰且更易于维护):

onClick='<%# String.Format("setGridInEditMode({0});", Container.RecordIndex) %>'

(请注意单引号和双引号!)

此限制适用于服务器控件及其属性。它不适用于服务器控件的嵌套文字内容(例如模板或面板的主体),也不适用于其他地方使用的纯 HTML,这可能就是您以前从未注意到这一点的原因。

关于ASP.NET 如何将容器值作为 javascript 参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591081/

相关文章:

python - wx中如何同步两个网格的滚动条

java - 如何更好地实现 5x5 按钮网格拼图的实现,以使用 2D 数组激活网格上周围的按钮?

c# - 如何初始化文本框以隐藏第一次显示并且仍然有 jquery 工作

c# - 有没有办法记录 ASP.NET 页面中发生的任何意外异常?

html - 如何修复 MaterializeCSS 垂直对齐

javascript - 为表单提交按钮添加书签

javascript - 如何在 VS Code 中的 .ts 文件下显示 .js 文件?

asp.net - 如何将我的 Autofac 容器插入 ASP。网络身份2.1

c# - 检查数据库值是否因数据库中的空值而无法正常工作

javascript - Kendo-UI 中的多系列线