• 使用Ajax更新数据库


    本例通过CheckBox控制修改状态。使用按钮通过Ajax更新数据。

    例子下载: https://files.cnblogs.com/scottckt/frmGetDb.rar

    代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="frmGetDb.aspx.cs" Inherits="frmGetDb" %>

    <
    !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns
    ="http://www.w3.org/1999/xhtml">
    <head runat
    ="server">
        <title
    >无标题页</title>

        <script type
    ="text/C#" runat="server">
            [System.Web.Services.WebMethod]
            public static bool UpdateText(string asName, string asId)
            {
                string conectionString 
    = "Data Source=scott;Initial Catalog=bbs;Persist Security Info=True;User ID=sa;Password=123";
                System.Data.SqlClient.SqlConnection conn 
    = new System.Data.SqlClient.SqlConnection(conectionString);
                conn.Open();
                string sSQl 
    = "UPDATE block SET block_name = '" + asName + "' WHERE block_id = " + asId;
                System.Data.SqlClient.SqlCommand cmd 
    = new System.Data.SqlClient.SqlCommand(sSQl, conn);
                cmd.ExecuteNonQuery();
                
                conn.Close();
                conn.Close();
                conn.Dispose();
                
    return true;

            }
        <
    /script>

        <script type
    ="text/javascript">

        
    //启动后将所有控件状态设为 不可用
        
    function disableGridViewTextBoxes() 
        {
            
    //得到GridView
            var gvControl 
    = document.getElementById("gvCategories"); 
            
            var inputElements 
    = gvControl.getElementsByTagName("INPUT"); 
            
    for( i = 0;i < inputElements.length; i++
            {
                
    if(isTextBox(inputElements[i])) 
                {
                    inputElements[i].disabled 
    = true;
                }
            }
        }

        
    //判断是否是textBox
        
    function isTextBox(obj) 
        {
            
    return obj.type == 'text';
        }

        
    //checkBox选择后改变状态
        
    function editMode(obj) 
        {
            var rowObject 
    = obj.parentElement.parentElement; 
            var inputElements 
    = getElementsByTagName(rowObject,"INPUT"); 

            
    if(obj.checked) 
            { 
                showElements(inputElements,
    "INPUT","text"); 
            }
            
    else 
            { 
                hideElements(inputElements,
    "text"); 
            } 
        }
        
        
       
    function updateMode(obj)
        {
            var rowObject 
    = obj.parentElement.parentElement; 
            var inputElements 
    = getElementsByTagName(rowObject,"INPUT"); 
            
            var msg 
    = new Array();

            
    for(var i=0;i<inputElements.length;i++
            {
                
    if(inputElements[i].type == "checkbox")
                {
                    inputElements[i].checked 
    = false;
                }
                
    if(inputElements[i].type == "text")
                {
                    msg.push(inputElements[i].value);
                }
                
    if(inputElements[i].type == "hidden")
                {
                    msg.push(inputElements[i].value);
                }
            }
            
    //更新数据
            PageMethods.UpdateText(msg[
    0], msg[1], msg[2], onSuccess);
            
    //完成后状态变更回来
            hideElements(inputElements,
    "text"); 
            
        }        
        
        
    function onSuccess(response)
        {
        }

        
    //将件设置可用
         
    function showElements(list, tagName,type) 
        {
            
    for(i = 0;i < list.length; i++
            {
                
    if(isTypeOf(list[i],"text")) 
                {
                    list[i].disabled 
    = false;
                    list[i].focus(); 
                    
    //list[i].select(); 
                }
            }
        }

        
    //判断类型是否一致
        
    function isTypeOf(obj,type) 
        {
            
    return obj.type == type;
        }

        
    //将控件设置为不可用
        
    function hideElements(list, type) 
        {
            
    for(i = 0; i < list.length;i++
            { 
                
    if(isTypeOf(list[i],type)) 
                {
                    list[i].disabled 
    = true;
                }
            }
        }
        
        
    //可到控件中的子控件
        
    function getElementsByTagName(obj,tagName) 
        {
            
    return obj.getElementsByTagName(tagName);
        }



        <
    /script>

    <
    /head>
    <body
    >
        <form id
    ="form1" runat="server">
            <asp:ScriptManager ID
    ="ScriptManager1" runat="server" EnablePageMethods="true">
            <
    /asp:ScriptManager>
            <div
    >
                <asp:GridView ID
    ="gvCategories" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
                    <Columns
    >
                        <asp:TemplateField
    >
                            <ItemTemplate
    >
                                <asp:CheckBox ID
    ="chkSelect" runat="server" onclick="editMode(this)" />
                            <
    /ItemTemplate>
                        <
    /asp:TemplateField>
                        <asp:TemplateField HeaderText
    ="block_name">
                            <ItemTemplate
    >
                                <asp:TextBox ID
    ="txbName" BorderWidth="0px" ForeColor="red" runat="server" Text='<%# Eval("block_name") %>' />
                            </ItemTemplate>
                        <
    /asp:TemplateField>
                        <asp:TemplateField HeaderText
    ="block_id">
                            <ItemTemplate
    >
                                <asp:HiddenField Value
    ='<%# Eval("block_id") %>' ID="hiddenId" runat="server" />
                            </ItemTemplate>
                        <
    /asp:TemplateField>
                        <asp:TemplateField
    >
                            <ItemTemplate
    >
                                <input type
    ="button" runat="server" id="btnUpdate" value="更新" onclick="updateMode(this)" />
                            <
    /ItemTemplate>
                        <
    /asp:TemplateField>
                    <
    /Columns>
                <
    /asp:GridView>
                <asp:SqlDataSource ID
    ="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:bbsConnectionString %>"
                    SelectCommand
    ="SELECT [block_id], [block_name] FROM [block]"></asp:SqlDataSource>
            <
    /div>
        <
    /form>
    <
    /body>
    <
    /html>

    <script
    >
    disableGridViewTextBoxes(); 
    <
    /script>

  • 相关阅读:
    C#操作REDIS例子
    A C# Framework for Interprocess Synchronization and Communication
    UTF8 GBK UTF8 GB2312 之间的区别和关系
    开源项目选型问题
    Mysql命令大全——入门经典
    RAM, SDRAM ,ROM, NAND FLASH, NOR FLASH 详解(引用)
    zabbix邮件报警通过脚本来发送邮件
    centos启动提示unexpected inconsistency RUN fsck MANUALLY
    rm 或者ls 报Argument list too long
    初遇Citymaker (六)
  • 原文地址:https://www.cnblogs.com/scottckt/p/1511709.html
Copyright © 2020-2023  润新知