您所在的位置: 程序员家园 -> 家园博客 ->
 
在哪里摔倒
就在哪里自己爬起来

用户登录

查  找

最新评论

最新留言

常用网站

网易邮箱 GMAIL  

百度搜索 MSDN

霏凡软件 BT精品

影视帝国 射 手 网

电驴下载 全 库 网

友情连接

茄菲的窝 冰冰博客

枫叶飘零 玫  瑰

ACEN 云 豹 子

统  计



给FormView里的DropDownList控件加客户端onchange事件
狼子 发表于 2007-2-2 20:17:00 阅读全文 | 回复(0) | 引用通告 | 编辑  asp.net查看本站使用过本标签的日志查看本站使用过本标签的用户

FormView里的定义:

<asp:FormView ID="fvReprot" runat="server" HorizontalAlign="Center" Width="98%" DataKeyNames="ReportID" DataSourceID="sdsReport" OnDataBound="fvReprot_DataBound">
                    <EditItemTemplate>
                        <table border="0" align="center" cellpadding="0" cellspacing="0" width="98%">
                            <tr>
                                <td align="center">客  户:</td>
                                <td colspan="3">
                                    <asp:DropDownList ID="ddlClientNameList" runat="server" DataSourceID="odsClientNameList" DataTextField="ClientName" DataValueField="ClientID" AppendDataBoundItems="True" SelectedValue='<%# Bind("ClientID") %>'>
                                        <asp:ListItem Value="0">新客户</asp:ListItem>
                                    </asp:DropDownList>
                                    <asp:TextBox ID="ClientNameTextBox" runat="server" CssClass="tableNotSelect" MaxLength="200" Width="80%" Text='<%# Bind("ClientName") %>'></asp:TextBox>
                                </td>
                            </tr>
                        </table>
                    </EditItemTemplate>
</asp:FormView>

这样的定义就是让用户从下拉列表里选择一个客户,如果选择了新客户,就要求输入新客户的名称

这里用到的CSS里定义的tableNotSelect是这样的:

.tableNotSelect
{
 display:none;
}

这里就是要给这个DropDownlist控件在客户端加一个onchange事件,控制ClientNameTextBox是否显示,我使用JavaScript

<script language="javascript">
                function showclient(s,textboxName)
                {
                    var tbn;
                    tbn=document.getElementById(textboxName);
                    if(tbn!=null)
                     {
                        if(s==0)
                        {
                         eval(tbn).style.display="block";
                         eval(tbn).value="";
                         eval(tbn).focus();
                        }
                        else
                        {
                         eval(tbn).style.display="none";
                        }
                    }
                }
            </script>

然后呢,还要把DropDownlist控件和这个JS函数关连:

protected void fvReprot_DataBound(object sender, EventArgs e)
    {
        if (fvReprot.CurrentMode == FormViewMode.Edit)
        {
            setClientNameEnable("ddlClientNameList", "ClientNameTextBox");
        }
        else if (fvReprot.CurrentMode == FormViewMode.Insert)
        {
            setClientNameEnable("ddlClientNameList", "ClientNameTextBox");
        }
    }
    private void setClientNameEnable(string ddlName, string tbName)
    {
        //加入事件
        DropDownList myddl = new DropDownList();
        TextBox mytb=new TextBox();
        myddl = (DropDownList)fvReprot.FindControl(ddlName);
        mytb=(TextBox)fvReprot.FindControl(tbName);
        if (myddl != null && mytb!=null)
        {
            string action="";
            action="showclient(this.value,'" + mytb.ClientID + "')";
            myddl.Attributes.Add("onchange", action);
        }
    }

发表评论:

    昵称:
    密码:
    主页:
    标题:
Powered by Oblog.