如何在ASP.NET中实现拖放Drag and drop

基于html5拖(drag)放(drop)实现换装小游戏 编码环境:asp.net mvc3 html5 运行环境:firefox浏览器通过。 一:有关html5的拖放功能,网上介绍的一大把,我将自己学习到的知识点总结如下: 1:全局属性draggable   具有拖放功能的一个全局属性draggable,true:可拖动;false:不可拖动;auto:视作浏览器支持情况而定;draggable:这个值估计也是可拖动的。 2:事件 既是拖... 阅读详情

最近要在ASP.NET中实现拖放功能,一般来说,不少控件提供商都有类似的控件,如ComponentArt,Yahoo等等。我发现Microsoft其实一两年前就有类似的工具了。不过Microsoft的工具除了最基本的之外向来不好看,也不太好用。

在网上读了读别人的例子,自己也试着编了一个。

 

这个功能要用Microsoft.Web.Preview.dll。可以从ASP.NET网上下载到说明和文件。

Javascript代码是要从Browser中读出被拖放的控件的位置。在Browser中的控件的位置Server端是读不到的。我用Javascript读出控件的ID,放入一个Hidden Field里,在由Server端的代码处理。

注意<script type="text/xml-script">中的代码,这是核心所在。

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplication1.WebForm2" %>

<!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 language="javascript" type="text/javascript">
      function aa() {
        var idString="";
        var i;
        var Panel1 = document.getElementById("Panel1") ;
        var Panel2 = document.getElementById("Panel2") ;
        for (i = 0; i < Panel1.children.length; i++) {
          if (Panel1.children[i].children.length > 0) {
            idString += Panel1.children[i].children[0].id + ";";
          }
        }
        document.getElementById("TextBox1").value = idString;
        idString = "";
        for (i = 0; i < Panel2.children.length; i++) {
          if (Panel2.children[i].children.length > 0) {
            idString += Panel2.children[i].children[0].id + ";";
          }
        }
        document.getElementById("TextBox2").value = idString;

        return true;
      }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
    <asp:ScriptManager ID="scriptManager" runat="server">
        <Scripts>
            <asp:ScriptReference Assembly="Microsoft.Web.Preview" Name="PreviewScript.js" />
            <asp:ScriptReference Assembly="Microsoft.Web.Preview" Name="PreviewDragDrop.js" />
        </Scripts>
    </asp:ScriptManager>
   
      <table style="width:100%;">
        <tr>
          <td>
            <asp:Panel ID="Panel1" runat="server" BorderStyle="Solid" BorderWidth="1px"
              Height="100px" Width="100px">
              <asp:Panel ID="Handler1" runat="server">
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
              </asp:Panel>
            </asp:Panel>
          </td>
          <td>
            <asp:Panel ID="Panel2" runat="server" Height="100px" Width="100px" BorderStyle="Solid" BorderWidth="1">
              <asp:Panel ID="Handler2" runat="server">
              <asp:Button ID="Button1" runat="server" Text="Button" />
              </asp:Panel>
            </asp:Panel>
          </td>
        </tr>
       </table>
   
         <div class="templates">
          <%-- Drop Cue template --%>
          <div id="dropCueTemplate" class="dropCue" runat="server"></div>
          <%-- Empty template --%>
          <div id="emptyTemplate" class="emptyList" runat="server"></div>
        </div>
      <asp:Button ID="Save" runat="server" Text="Button" onclick="Button2_Click" OnClientClick="return aa();"/>
      <input id="TextBox1"  type="hidden" runat="server"/>
      <input id="TextBox2"  type="hidden" runat="server"/>
      <br />
      <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label><br />
      <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
   
   <script type="text/xml-script">
   <page>
   <components>
         <control id="Panel1">
          <behaviors>
              <dragDropList dragDataType="HTML"
                            acceptedDataTypes="'HTML'"
                            dragMode="Move"
                            direction="Vertical">
                  <dropCueTemplate>
                      <template layoutElement="dropCueTemplate" />
                  </dropCueTemplate>
                  <emptyTemplate>
                      <template layoutElement="emptyTemplate" />
                  </emptyTemplate>
              </dragDropList>
          </behaviors>
      </control>
     
        <control id="Panel2">
              <behaviors>
                  <dragDropList dragDataType="HTML"
                                acceptedDataTypes="'HTML'"
                                dragMode="Move"
                                direction="Vertical">
                      <dropCueTemplate>
                          <template layoutElement="dropCueTemplate" />
                      </dropCueTemplate>
                      <emptyTemplate>
                          <template layoutElement="emptyTemplate" />
                      </emptyTemplate>
                  </dragDropList>
              </behaviors>
          </control>


        <control id="Handler1">
            <behaviors>
                <draggableListItem handle="Handler1" />
            </behaviors>
        </control>
        <control id="Handler2">
            <behaviors>
                <draggableListItem handle="Handler2" />
            </behaviors>
        </control>

   </components>
   </page>
   </script>

</body>
</html>

 

 

Code Behind:

    protected void Button2_Click(object sender, EventArgs e)
    {
      this.Label2.Text = this.TextBox1.Value;
      this.Label3.Text = this.TextBox2.Value;

    }

 

asp.net 实现拖放操作 asp.net 实现拖放操作! 很值得下载看看!资源免费,大家分享!! 立即下载

相关推荐

syslog RFC5424协议详解

RFC5424协议解读与报文分析。

chenwr2018的博客 6690

拖拽页面元素+flip动画的案例

拖拽页面元素+flip动画的案例

benlalagang的博客 1880

华为路由器静态路由配置实战:从零搭建企业级网络环境(含常见错误排查)

本文以真实企业组网案例为基础,详细解析华为路由器静态路由的实战配置流程。内容涵盖从网络拓扑规划、IP地址分配到具体的`ip route-static`命令配置,并重点讲解了缺省路由、浮动路由等进阶应用。文章还提供了系统化的排错指南,帮助网络工程师规避回程路由缺失、子网掩码错误等常见问题,是掌握企业级网络搭建与维护的实用指南。

weixin_29313817的博客 89

在ASP.NET中如何实现拖拽和停靠?

<scriptlanguage="javascript">varm_iRectSize=6;//框框大小varm_oRect=newArray();//框框数组varm_oActiveRect=null;//激活的框框varm_iOffsetRectX=0;//框框x偏移varm_iOffsetRectY...

weixin_34255793的博客 293

Unity3D实战:用EasyAR4.0稀疏空间地图打造AR导航应用(附完整代码)

本文详细介绍了如何使用Unity3D和EasyAR4.0的SparseSpatialMap功能构建AR导航应用。通过稀疏空间地图技术,开发者可以创建室内导航系统,解决传统GPS在室内环境中的局限性。文章包含完整代码示例,涵盖环境配置、地图构建、导航实现及性能优化等关键步骤,助力开发者快速掌握AR导航开发技巧。

t8u9v0的博客 1197

【2021末九软工边缘人保研】川大-中科院网络中心-华师夏令营+哈工大本-中科院网络中心-西交-厦大-中山-武大-北航预推免

2021末九软工边缘人保研记录一、写在前面二、个人背景 一、写在前面 2020年计算机保研可谓是诸神黄昏,卷的头破血流(指我等菜鸡)。疫情的原因,今年的夏令营和预推免基本全部改为线上,机试取消,能不能拿到offer基本完全取决于背景以及面试表现(当然也有个别头铁非要机试,甚至笔试的学校)。大佬们offer收割不停,我等边缘人只能看着一封封拒信发呆。 这种情况下,只有985 Rank5%以及211 Rank2%之前的大佬能够较为轻松地拿到面试入场券。贴一个上交电院夏令营要求你们感受一下: 预推免相比起夏令营

weixin_43222706的博客 4235

VB.NET窗口开发技巧(1)——拖拽文件获取文件名称信息

要实现拖拽文件到文件框中,显示其路径:首先设置TextBox控件的AllowDrop属性设置为true然后在TextBox的DragEnter和DragDrop中编写如下代码。

m0_55900454的博客 1121

Unity 热更 之 【YooAsset 热更】几分钟快速了解 YooAsset [功能面板]、以及 [基础代码] 说明

Unity 的资源管理系统不断发展,以适应不同项目的需求和解决特定的问题。AssetBundle 和 Addressable Asset System 是 Unity 官方提供的资源管理解决方案,而 YooAsset 是第三方提供的资源管理系统。简化的API和易用性YooAsset 可能提供了更简单直观的 API,使得资源加载和管理更加容易。对于不熟悉 Addressable 或 AssetBundle 复杂配置的开发者来说,YooAsset 可能是一个更易于上手的选择。性能优化。

仙魁XAN 2955

asp.net BS拖拽工作流设计及研发(附Demo源码)

本文主要目录如下: 一、概述 二、需求分析及设计 三、数据结构设计 四、技术选型 五、界面和代码赏析 六、Demo源码下载 一、概述 BS应用系统或互联网网站中经常会有一些漂亮的流程图的展示,传统的开发方式一般是由项目经理或产品经理根据客户的需求画出流程图原型,然后交由美工设计效果图评审并切割,再由研发这边根据美工切割的html结合实际业务流程实现流程图的动态显示,...

dicongtan5700的博客 631

MicroChip的SmartFusion2的M2S090芯片的全流程开发环境搭建和Demo设计

MicroChip的SmartFusion2的M2S090芯片的全流程开发环境搭建和Demo设计

qq_45806640的博客 455

Android应用发布到Google Play的步骤和注意事项

发布Android应用到Google Play是将您的应用分享给全球用户的重要步骤。Google Play是Android平台上最大的应用分发渠道之一,使得开发者可以轻松将他们的应用推广到数百万的用户。在本篇博客中,我们将逐步介绍如何将您的Android应用发布到Google Play,同时提供详细的步骤和注意事项,以及相关的代码示例。

2201_76125261的博客 850

.Net控件的拖拽

<br />控件的拖拽从开始拖拽到拖拽完成共经过3个阶段,这3个阶段对应3个事件。<br />ItemDrag 用户开始拖拽时发生。<br />DragEnter 鼠标将某项拖动到该控件工作区域时发生<br />DragDrop 控件拖拽完成时发生。<br />下面, 我就以从Tree_View里将某个TreeNode拖拽到ListView中为例。<br />首先分析:会经历哪几个事件。<br />说明:My_TV 为TreeView My_LV为ListView<br />执行 顺序应为:My_TV_It

DaiLei831209的专栏 1363

Unity最强动作战斗框架?Combat System Framework 深度解析

Combat System Framework 并不是一个简单的角色控制器,而是一套完整的动作游戏战斗开发框架。它借鉴了现代 AAA 游戏常见的架构思想,以 Gameplay Tag 为核心,结合 ScriptableObject 数据驱动设计,将技能、属性、Buff、伤害、武器、动画通知等系统有机整合在一起。同时,配套的可视化动画时间轴、Root Motion 工具和实时预览窗口,大幅优化了动作开发流程。当然,这套框架也有一定的学习门槛。

2403_88403568的博客 681

ASP.NET Atlas实现网站模块(版块)拖放(Drag & Drop)效果

基本上,Atlas中可拖放的UI由如下两个部分实现: 可拖动的对象以及投放目标对象。可拖动的对象就是在页面中可以被鼠标移动的DOM元素(例如网上商城中的物品),而投放目标对象则是页面中可以接收可拖动对象的,作为容器的DOM元素(例如网上商城中的购物车)。Atlas允许您通过实现IDragSource接口来定义自己的可拖动对象,实现IDropTarget接口来定义自己的投放目标对象。当然您可以同时

刘凤飞 1294

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

使用ASP.NET Atlas实现拖放(Drag & Drop)效果(上)

English Version: http://dflying.dflying.net/1/archive/77_atlas_drag__drop_overview.html中文版:http://dflying.cnblogs.com/archive/2006/04/21/381763.html 请同时参考:使用ASP.NET Atlas实现拖放(Drag &amp; Drop)效果(下) 题外...

weixin_34241036的博客 132

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

ASP.NET AJAX (Atlas) 拖放(Drag & Drop)功能6种实现方法总结

在Ajax程序中实现传统桌面程序中异常简单的拖放功能却并不是件容易的事情。然而Web上的拖放功能又如此的让人痴迷,所以几乎每个成熟的Ajax类库都提供了自己的一套实现拖放的封装,ASP.NET AJAX (Atlas) 自然也不例外。本文将总结并简要分析ASP.NET AJAX (Atlas) 中拖放功能的6种不同的实现方法,希望能够帮助朋友们选出最适合实际需求的方法。其中第1到第4种方案,在

389

[转]ASP.NET AJAX (Atlas) 拖放(Drag & Drop)功能6种实现方法总结

在Ajax程序中实现传统桌面程序中异常简单的拖放功能却并不是件容易的事情。然而Web上的拖放功能又如此的让人痴迷,所以几乎每个成熟的Ajax类库都提供了自己的一套实现拖放的封装,ASP.NET AJAX (Atlas) 自然也不例外。本文将总结并简要分析ASP.NET AJAX (Atlas) 中拖放功能的6种不同的实现方法,希望能够帮助朋友们选出最适合实际需求的方法。 其中第1到第4种方案...

weixin_34313182的博客 134

使用ASP.NET Atlas实现拖放(Drag & Drop)效果(下)

English Version: http://dflying.dflying.net/1/archive/77_atlas_drag__drop_overview.html 中文版:http://dflying.cnblogs.com/archive/2006/04/23/382916.html请同时参考:使用ASP.NET Atlas实现拖放(Drag & Drop)效果(上) 在...

weixin_30679823的博客 151

使用ASP.NET Atlas实现拖放(Drag & Drop)效果

使用ASP.NET Atlas实现拖放(Drag & Drop)效果(上) English Version: http://dflying.dflying.net/1/archive/77_atlas_drag__drop_overview.html中文版:http://dflying.cnblogs.com/archive/2006/04/21/381763.html 请同时参考:使

清风阁 1995

Custom Client Side Drag and Drop Behavior in ASP.NET AJAX

这是我的一篇在http://aspalliance.com/上的英文文章,限于版权协议中的排他性条款,这里只能给出一部分摘要引用。有兴趣的朋友可以到这里看到完整的全文:《Custom Client Side Drag and Drop Behavior in ASP.NET AJAX》。 Published: 19 Jun 2007 Abstract This article explain...

weixin_34049032的博客 120

ASP.NET Atlas实现网站模块(版块)拖放(Drag & Drop)效果

English Version: http://dflying.dflying.net/1/archive/77_atlas_drag__drop_overview.html中文版:http://dflying.cnblogs.com/archive/2006/04/21/381763.html 请同时参考:使用ASP.NET Atlas实现拖放(Drag & Drop)效果(下)题外话T

piaoyi_online的专栏 3820

ICode Python二级通关秘籍:用‘飞船’走迷宫,搞定数独训练场所有关卡

本文详细介绍了ICode国际青少年编程竞赛Python二级训练场中‘数独’关卡的通关技巧。通过操控‘飞船’走迷宫的方式,将编程概念具象化,帮助青少年理解循环、条件判断等核心语法。文章分解了20个关卡,从基础移动到嵌套循环和条件判断,提供了实用的解题方法和调试技巧,适合9-15岁青少年学习。

weixin_33733810的博客 482
上一篇: 翻译整理
下一篇: 第8章已经整理好,如有需要,请告之
萝卜
博客等级 码龄21年 22粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值