这是我的方案, 我在页面中有一个按钮和一个下拉列表。单击该按钮后,我需要打开telerik的radwindow。在那个窗口里面我有一个gridview,并且我需要显示隐藏字段数据的网格。够简单!!
这是我对radwindow和grid的标记(Hiddenfield在contenttemplate里面)..
<telerik:RadWindow ID="rw_UoMGroupDetails" runat="server" AutoSize="true" MaxHeight="260px" MinWidth="500px" Behaviors="Close,Move" Modal="true" CenterIfModal="true" VisibleTitlebar="true"
Title="Group Definition" BorderStyle="None" VisibleStatusbar="false" RestrictionZoneID="MainArea">
<ContentTemplate>
<asp:HiddenField runat="server" ID="hfUoMComb" />
<asp:UpdatePanel ID="Updatepanel2" runat="server" UpdateMode="Always">
<ContentTemplate>
<telerik:RadAjaxPanel ID="RadAjaxPanel3" LoadingPanelID="RadAjaxLoadingPanel1" runat="server">
<telerik:RadGrid ID="rgv_UoMDetails" runat="server" OnNeedDataSource="rgv_UoMDetails_NeedDataSource" Width="100%"
Height="220px" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" SelectedItemStyle-BackColor="#003366"
OnPreRender="rgv_UoMDetails_PreRender" OnBatchEditCommand="rgv_UoMDetails_BatchEditCommand">
<GroupingSettings CollapseAllTooltip="Collapse all groups"></GroupingSettings>
<MasterTableView CommandItemDisplay="Top" ShowHeadersWhenNoRecords="true" EditMode="Batch"
AutoGenerateColumns="False" DataKeyNames="UoMGID" TableLayout="Fixed">
<BatchEditingSettings EditType="Row" />
<Columns>
<telerik:GridNumericColumn DataField="AltQty" DecimalDigits="5" HeaderText="Alt. Qty" HeaderStyle-Width="100px"
UniqueName="AltQty" ItemStyle-HorizontalAlign="Right">
</telerik:GridNumericColumn>
<telerik:GridTemplateColumn DataField="UoMID" HeaderText="Alt. UoM" HeaderStyle-Width="120px"
UniqueName="AltUoMID">
<ItemTemplate>
<%#Eval("AltUoMCode") %>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadComboBox ID="cmbx_AltUoM" runat="server" Width="100%" Filter="Contains" MarkFirstMatch="true"
OnClientDropDownOpening="onUoMComboItemRequesting">
</telerik:RadComboBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderStyle-Width="20px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<span>=</span>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridNumericColumn DataField="BaseQty" DecimalDigits="5" HeaderStyle-Width="100px" HeaderText="Base Qty"
UniqueName="BaseQty" ItemStyle-HorizontalAlign="Right">
</telerik:GridNumericColumn>
<telerik:GridBoundColumn DataField="BaseUoMCode" HeaderStyle-Width="100px" FilterControlAltText="Filter BaseUoMCode column"
HeaderText="Base UoM" UniqueName="BaseUoMCode" ReadOnly="true" DefaultInsertValue="Kg">
</telerik:GridBoundColumn>
</Columns>
<CommandItemSettings AddNewRecordText="" CancelChangesText="" SaveChangesText="" RefreshText="" />
</MasterTableView>
<ClientSettings AllowKeyboardNavigation="true">
<ClientEvents OnBatchEditOpening="BatchEditOpening"></ClientEvents>
<Scrolling AllowScroll="true" UseStaticHeaders="true" ScrollHeight="220px" SaveScrollPosition="true" />
<Resizing AllowColumnResize="true"></Resizing>
</ClientSettings>
</telerik:RadGrid>
</telerik:RadAjaxPanel>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</telerik:RadWindow>
好的,现在让我告诉你我在哪里设置hiddenfield的数据..
protected void imgbtn_UoMGroupDef_Click(object sender, ImageButtonClickEventArgs e)
{
ViewState["UoMGID"] = cmbx_UoMGGroup.SelectedValue;
hfUoMComb.Value = cmbx_InventoryUoM.SelectedItem.Text;
现在我正在调用此网格的客户端事件,我想显示该隐藏字段的数据。
<script type="text/javascript">
function BatchEditOpening(sender, args) {
debugger;
for (var i = 0; i < args._tableView._dataItems.length; i++) {
args._tableView._dataItems[0]._element.cells[4].innerText = document.getElementById('<%= hfUoMComb.ClientID%>').value;
}
}
</script>
这里我得到空字符串:(!我怎么能解决这个问题?
答案 0 :(得分:0)
这是因为webforms
通过添加随机字符串来呈现隐藏字段的id
。
要保留id
,您需要添加ClientIDMode="Static"
您应该使用ClientID
属性来设置id
。