FineUI 官方论坛

标题: grid里面模版列textbox加dropdownlist实现可编辑下拉框 [打印本页]

作者: 老皮鞋    时间: 2013-1-23 09:44
标题: grid里面模版列textbox加dropdownlist实现可编辑下拉框
模版列代码
<x:TemplateField Width="220px" HeaderText="费用项目">
<ItemTemplate>
<div style="position: relative;">
<span style="margin-left: 132px; width: 18px; overflow: hidden;">
<aspropDownList ID="ddlFyxm" runat="server" Style="width: 150px; margin-left: -132px" OnSelectedIndexChanged="ddlFyxm_SelectedIndexChanged"
AutoPostBack="True" >
</aspropDownList>
</span>
<asp:TextBox ID="txtFyxm" runat="server" Style="width: 126px; position: absolute;margin-top:2px;left: 0px;" AutoPostBack="True" Text='<%# Eval("fieldstr4") %>' ></asp:TextBox>
</div>
</ItemTemplate>

以下是服务器和客户端代码

protected void ddlFyxm_SelectedIndexChanged(object sender, EventArgs e)
{
PageContext.RegisterStartupScript("getDDLTextandValue();");
// Page.ClientScript.RegisterStartupScript(this.GetType(), "alert_hello", "getDDLTextandValue();", true);
}


<script language="javascript" type="text/javascript">
<!--
function getDDLTextandValue() {
var DDL = Ext.getCmp("ddlFyxm");
var index = DDL.selectedIndex;
var Text = DDL.options[index].text;
var Value = DDL.options[index].value;
alert(Value);
var txt = Ext.getCmp("txtFyxm");
txt.value = Value;
}
//-->
</script>

现在的问题是:如何才能将下拉框选值赋给文本框

求助三石大师




作者: sanshi    时间: 2013-1-23 10:18
这个只需要客户端脚本就行了,不需要
OnSelectedIndexChanged="ddlFyxm_SelectedIndexChanged"
AutoPostBack="True"

可以先尝试自己实现下...
作者: 老皮鞋    时间: 2013-1-23 15:14
问题是客户端如何才能将下拉框选值赋给文本框,不知道如何查找grid当前编辑行模版列的文本框

作者: sanshi    时间: 2013-1-24 12:57
我写了一个例子,并checkin到codeplex了,你可以下载源代码查看。

-增加同步下拉列表的选中值到文本输入框的例子(老皮鞋)。

关键的代码如下:
  1. <script type="text/javascript">
  2.         var gridClientID = '<%= Grid1.ClientID %>';

  3.         function registerSyncEvent() {
  4.             var grid = X(gridClientID);
  5.             grid.el.select('.x-grid-tpl select.gender').on("change", function (evt, el) {

  6.                 var row = Ext.get(el).parent('.x-grid3-row');
  7.                 row.query('input.gender')[0].value = el.value;

  8.             });

  9.         }

  10.         function onReady() {
  11.             var grid = X(gridClientID);

  12.             grid.on('viewready', function () {
  13.                 registerSyncEvent();
  14.             });
  15.         }

  16.         function onAjaxReady() {
  17.             registerSyncEvent();
  18.         }
  19.     </script>
复制代码
  1. <x:TemplateField Width="160px" HeaderText="性别">
  2.                 <ItemTemplate>
  3.                     <asp:TextBox runat="server" ID="tbxGender" CssClass="gender" Width="50px"></asp:TextBox>
  4.                     <asp:DropDownList runat="server" Width="50px" CssClass="gender" ID="ddlGender">
  5.                         <asp:ListItem Text="男" Value="男"></asp:ListItem>
  6.                         <asp:ListItem Text="女" Value="女"></asp:ListItem>
  7.                     </asp:DropDownList>
  8.                 </ItemTemplate>
  9.             </x:TemplateField>
复制代码
[attach]1685[/attach]
作者: 老皮鞋    时间: 2013-1-25 02:37
老大您源码grid_edit_dropdownlist_textbox可能漏传了




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4