如何在asp.net中实现listbox item值上下移动?(转)

全部.net为:
None.gif 1    <form id="myform" runat="server">
None.gif 2    
<div>
None.gif 3            
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}"
None.gif 4            SelectMethod
="GetDepartmentsAll" TypeName="Cvv.BLL.Bases.DepartmentBLL"></asp:ObjectDataSource>
None.gif 5         
<table  border="0"  width="300">
None.gif 6           
<tr>
None.gif 7           
<td colspan="4" align=center>
None.gif 8               流程名称:
<asp:TextBox ID="tbProcessName" runat="server"></asp:TextBox>
None.gif 9                         
<asp:RequiredFieldValidator ID="rfvProcessName" runat="server" ErrorMessage="请输入" ControlToValidate="tbProcessName" Display="Dynamic">*</asp:RequiredFieldValidator>
None.gif10                         
<asp:RegularExpressionValidator ID="revProcessName" runat="server" ErrorMessage="请不要输入单引号和空白" ControlToValidate="tbProcessName" ValidationExpression="[^'\s]{1,50}" Display="Dynamic"></asp:RegularExpressionValidator>               
None.gif11               
</td>
None.gif12           
</tr>         
None.gif13           
<tr>  
None.gif14           
<td width="40%">部门列表</td>  
None.gif15           
<td  align="center" style="width: 20%">操作</td>  
None.gif16           
<td style="width: 40%">流程顺序</td>  
None.gif17           
<td style="width: 43px">调整</td>  
None.gif18           
</tr>  
None.gif19             
<tr>
None.gif20                 
<td style="width: 40%">
None.gif21                     
<asp:ListBox ID="ListBox1" runat="server" DataSourceID="ObjectDataSource1" DataTextField="DepartmentName"
None.gif22                         DataValueField
="DepartmentID" Height="411px" SelectionMode="Multiple" Width="235px">
None.gif23                     
</asp:ListBox></td>
None.gif24                 
<td align="center" style="width: 20%">
None.gif25                     
<asp:Button ID="Addbtn" runat="server" OnClick="Addbtn_Click" Text="添加" /><br><br>
None.gif26                     
<asp:Button ID="Deletebtn" runat="server" OnClick="Deletebtn_Click" Text="删除" /></td>
None.gif27                 
<td style="width: 40%">
None.gif28                     
<asp:ListBox ID="ListBox2" runat="server" Height="411px" SelectionMode="Multiple"
None.gif29                         Width
="235px"></asp:ListBox></td>
None.gif30                 
<td style="width: 43px">
None.gif31                     
<asp:Button ID="Upbtn" runat="server" OnClick="Upbtn_Click" Text="上移" /><br><br>
None.gif32                     
<asp:Button ID="Downbtn" runat="server" OnClick="Downbtn_Click" Text="下移" /></td>
None.gif33             
</tr>
None.gif34             
<tr>
None.gif35                 
<td colspan="4" align=center>
None.gif36                     
<asp:Button ID="precessadd" runat="server" Text="确认并提交" OnClick="precessadd_Click" /></td>
None.gif37             
</tr>
None.gif38         
</table>  
None.gif39
<input id="ListBox1_Click" type="hidden" value="false" name="ListBox1_Click" runat="server">
None.gif40
<input id="ListBox2_Click" type="hidden" value="false" name="ListBox2_Click" runat="server">
ExpandedBlockStart.gifContractedBlock.gif41
<script language="vbscript">dot.gif
InBlock.gif42
option explicit            
InBlock.gif43
sub ListBox1_ondblclick()
InBlock.gif44myform.ListBox1_Click.value
="true"
InBlock.gif45myform.submit()
InBlock.gif46
end sub
InBlock.gif
47
InBlock.gif48
sub ListBox2_ondblclick()
InBlock.gif49myform.ListBox2_Click.value
="true"
InBlock.gif50myform.submit()
InBlock.gif51
end sub
ExpandedBlockEnd.gif
52
</script>
None.gif53    
</div>
None.gif54    
</form>

后台代码:
None.gif  1    protected void Page_Load(object sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif  
2    dot.gif{
InBlock.gif  
3        if (IsPostBack)
ExpandedSubBlockStart.gifContractedSubBlock.gif  
4        dot.gif{
InBlock.gif  
5            if (ListBox1_Click.Value == "true")
ExpandedSubBlockStart.gifContractedSubBlock.gif  
6            dot.gif{
InBlock.gif  
7                Addbtn_Click(sender,e);
ExpandedSubBlockEnd.gif  
8            }

InBlock.gif  
9                
InBlock.gif 
10
InBlock.gif 
11            if (ListBox2_Click.Value == "true")
ExpandedSubBlockStart.gifContractedSubBlock.gif 
12            dot.gif{
InBlock.gif 
13                Deletebtn_Click(sender,e);
ExpandedSubBlockEnd.gif 
14            }

ExpandedSubBlockEnd.gif 
15        }

ExpandedBlockEnd.gif 
16    }

None.gif 
17    protected void precessadd_Click(object sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif 
18    dot.gif{
InBlock.gif 
19        if (IsValid)
ExpandedSubBlockStart.gifContractedSubBlock.gif 
20        dot.gif{
InBlock.gif 
21            //写入流程名称
InBlock.gif
 22            //声明实体类
InBlock.gif
 23            Cvv.Mode.Bases.Process _process = new Cvv.Mode.Bases.Process();
InBlock.gif 
24
InBlock.gif 
25            //从表单中取值初始化实体类
InBlock.gif
 26            _process.ProcessName = tbProcessName.Text;
InBlock.gif 
27
InBlock.gif 
28            //声明业务对象
InBlock.gif
 29            Cvv.BLL.Bases.ProcessBLL _processBLL = new Cvv.BLL.Bases.ProcessBLL();
InBlock.gif 
30            if (_processBLL.InsertProcess(_process) > 0)        //操作成功
ExpandedSubBlockStart.gifContractedSubBlock.gif
 31            dot.gif{
InBlock.gif 
32
ExpandedSubBlockEnd.gif 
33            }

InBlock.gif 
34            else        //操作失败
ExpandedSubBlockStart.gifContractedSubBlock.gif
 35            dot.gif{
InBlock.gif 
36                Response.Write("<script>alert('很抱歉,添加失败!');location.href ='" + Request.ServerVariables["HTTP_REFERER"+ "';</Script>");
InBlock.gif 
37                Response.End();
ExpandedSubBlockEnd.gif 
38            }

InBlock.gif 
39
InBlock.gif 
40            //写入流程过程
InBlock.gif
 41            //声明实体类.声明业务对象
InBlock.gif
 42            Cvv.Mode.Bases.ProcessDetailed _processDetailed = new Cvv.Mode.Bases.ProcessDetailed();
InBlock.gif 
43            Cvv.BLL.Bases.ProcessDetailedBLL _processDetailedBLL = new Cvv.BLL.Bases.ProcessDetailedBLL();
InBlock.gif 
44
InBlock.gif 
45            //从表单中取值初始化实体类,并循环写入
InBlock.gif
 46            for (int i = 0; i < ListBox2.Items.Count; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif 
47            dot.gif{
InBlock.gif 
48                _processDetailed.ProcessID = _process.ProcessID;
InBlock.gif 
49                _processDetailed.DepartmentID = new Guid(ListBox2.Items[i].Value);
InBlock.gif 
50                _processDetailed.ProcessOrder = i + 1;
InBlock.gif 
51                //写入
InBlock.gif
 52                _processDetailedBLL.InsertProcessDetailed(_processDetailed);
InBlock.gif 
53
ExpandedSubBlockEnd.gif 
54            }

InBlock.gif 
55            Response.Write("<script>alert('祝贺您,添加成功,请继续操作!');location.href ='" + Request.ServerVariables["HTTP_REFERER"+ "';</Script>");
ExpandedSubBlockEnd.gif 
56        }

ExpandedBlockEnd.gif 
57    }

None.gif 
58
None.gif 
59    //添加
None.gif
 60    protected void Addbtn_Click(object sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif 
61    dot.gif{
InBlock.gif 
62        int i = 0;
InBlock.gif 
63        while (i < ListBox1.Items.Count)
ExpandedSubBlockStart.gifContractedSubBlock.gif 
64        dot.gif{
InBlock.gif 
65            if (ListBox1.Items[i].Selected == true)
ExpandedSubBlockStart.gifContractedSubBlock.gif 
66            dot.gif{
InBlock.gif 
67                ListBox2.Items.Add(ListBox1.Items[i]);
InBlock.gif 
68                ListBox1.Items.Remove(ListBox1.Items[i]);
ExpandedSubBlockEnd.gif 
69            }

InBlock.gif 
70            else
InBlock.gif 
71                i += 1;
ExpandedSubBlockEnd.gif 
72        }

ExpandedBlockEnd.gif 
73    }

None.gif 
74    //删除
None.gif
 75    protected void Deletebtn_Click(object sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif 
76    dot.gif{
InBlock.gif 
77        int i = 0;
InBlock.gif 
78        while (i < ListBox2.Items.Count)
ExpandedSubBlockStart.gifContractedSubBlock.gif 
79        dot.gif{
InBlock.gif 
80            if (ListBox2.Items[i].Selected == true)
ExpandedSubBlockStart.gifContractedSubBlock.gif 
81            dot.gif{
InBlock.gif 
82                ListBox1.Items.Add(ListBox2.Items[i]);
InBlock.gif 
83                ListBox2.Items.Remove(ListBox2.Items[i]);
ExpandedSubBlockEnd.gif 
84            }

InBlock.gif 
85            else
InBlock.gif 
86                i += 1;
ExpandedSubBlockEnd.gif 
87        }

ExpandedBlockEnd.gif 
88    }

None.gif 
89    //上移
None.gif
 90    protected void Upbtn_Click(object sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif 
91    dot.gif{
InBlock.gif 
92        //若不是第一行则上移
InBlock.gif
 93        if (ListBox2.SelectedIndex > 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif 
94        dot.gif{
InBlock.gif 
95            string name = ListBox2.SelectedItem.Text;
InBlock.gif 
96            string ID = ListBox2.SelectedItem.Value;
InBlock.gif 
97            int index = ListBox2.SelectedIndex;
InBlock.gif 
98            ListBox2.SelectedItem.Text = ListBox2.Items[index - 1].Text;
InBlock.gif 
99            ListBox2.SelectedItem.Value = ListBox2.Items[index - 1].Value;
InBlock.gif
100            ListBox2.Items[index - 1].Text = name;
InBlock.gif
101            ListBox2.Items[index - 1].Value = ID;
InBlock.gif
102            ListBox2.SelectedIndex--;
ExpandedSubBlockEnd.gif
103        }

ExpandedBlockEnd.gif
104    }

None.gif
105    //下移
None.gif
106    protected void Downbtn_Click(object sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif
107    dot.gif{
InBlock.gif
108        //若不是最后一行则下移
InBlock.gif
109        if (ListBox2.SelectedIndex >= 0 && ListBox2.SelectedIndex < ListBox2.Items.Count - 1)
ExpandedSubBlockStart.gifContractedSubBlock.gif
110        dot.gif{
InBlock.gif
111            string name = ListBox2.SelectedItem.Text;
InBlock.gif
112            string ID = ListBox2.SelectedItem.Value;
InBlock.gif
113            int index = ListBox2.SelectedIndex;
InBlock.gif
114            ListBox2.SelectedItem.Text = ListBox2.Items[index + 1].Text;
InBlock.gif
115            ListBox2.SelectedItem.Value = ListBox2.Items[index + 1].Value;
InBlock.gif
116            ListBox2.Items[index + 1].Text = name;
InBlock.gif
117            ListBox2.Items[index + 1].Value = ID;
InBlock.gif
118            ListBox2.SelectedIndex++;
ExpandedSubBlockEnd.gif
119        }

ExpandedBlockEnd.gif
120    }

在.net中使用obojectdata为:

None.gif 1    <form id="myform" runat="server">
None.gif 2    
<div>
None.gif 3         
<table  border="0"  width="300">  
None.gif 4             
<tr>  
None.gif 5             
<td  width="40%">
None.gif 6            
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}"
None.gif 7            SelectMethod
="GetDepartmentsAll" TypeName="Cvv.BLL.Bases.DepartmentBLL"></asp:ObjectDataSource>
None.gif 8            
<asp:ListBox ID="list1" runat="server" DataSourceID="ObjectDataSource1" DataTextField="DepartmentName"
None.gif 9            DataValueField
="DepartmentID" Height="411px" Width="235px" ondblclick="moveOption(document.myform.list1,document.myform.list2)"></asp:ListBox>             
None.gif10           
</td>  
None.gif11           
<td  width="20%"  align="center">  
None.gif12                
<input  type="button"  value="添加"  onclick="moveOption(document.myform.list1,document.myform.list2)"><br><br>
None.gif13                
<input  type="button"  value="删除"  onclick="moveOption(document.myform.list2,document.myform.list1)"> 
None.gif14           
</td>  
None.gif15           
<td  width="40%">
None.gif16           
<asp:ListBox ID="list2" runat="server" ondblclick="moveOption(document.myform.list2,document.myform.list1)" Height="411px" Width="235px"></asp:ListBox>  
None.gif17           
</td>  
None.gif18           
<td>  
None.gif19               
<button  onclick="changepos(list2,-1)"  type="button">上移</button><br>  
None.gif20               
<button  onclick="changepos(list2,1)"  type="button">下移</button>  
None.gif21           
</td>  
None.gif22           
</tr>  
None.gif23         
</table>  
ExpandedBlockStart.gifContractedBlock.gif24
<script  language="JavaScript">dot.gif  
InBlock.gif
25<!--  
ExpandedSubBlockStart.gifContractedSubBlock.gif26
function  moveOption(e1,  e2)dot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
27           trydot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
28           for(var  i=0;i<e1.options.length;i++)dot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
29           if(e1.options[i].selected)dot.gif{  
InBlock.gif
30           var  e  =  e1.options[i];  
InBlock.gif
31           e2.options.add(new  Option(e.text,  e.value));  
InBlock.gif
32           e1.remove(i);  
InBlock.gif
33           i=i-1  
ExpandedSubBlockEnd.gif
34           }
  
ExpandedSubBlockEnd.gif
35           }
  
InBlock.gif
36           //document.myform.city.value=getvalue(document.myform.list2);  
ExpandedSubBlockEnd.gif
37           }
  
ExpandedSubBlockStart.gifContractedSubBlock.gif
38           catch(e)dot.gif{}  
ExpandedSubBlockEnd.gif
39}
  
ExpandedSubBlockStart.gifContractedSubBlock.gif40
function  getvalue(geto)dot.gif{  
InBlock.gif
41           var  allvalue  =  "";  
ExpandedSubBlockStart.gifContractedSubBlock.gif
42           for(var  i=0;i<geto.options.length;i++)dot.gif{  
InBlock.gif
43           allvalue  +=geto.options[i].value  +  ",";  
ExpandedSubBlockEnd.gif
44           }
  
InBlock.gif
45           return  allvalue;  
ExpandedSubBlockEnd.gif
46}
  
InBlock.gif47
function  changepos(obj,index)  
ExpandedSubBlockStart.gifContractedSubBlock.gif
48dot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
49           if(index==-1)dot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
50           if  (obj.selectedIndex>0)dot.gif{  
InBlock.gif
51           obj.options(obj.selectedIndex).swapNode(obj.options(obj.selectedIndex-1))  
ExpandedSubBlockEnd.gif
52           }
  
ExpandedSubBlockEnd.gif
53           }
  
ExpandedSubBlockStart.gifContractedSubBlock.gif
54           else  if(index==1)dot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
55           if  (obj.selectedIndex<obj.options.length-1)dot.gif{  
InBlock.gif
56           obj.options(obj.selectedIndex).swapNode(obj.options(obj.selectedIndex+1))  
ExpandedSubBlockEnd.gif
57           }
  
ExpandedSubBlockEnd.gif
58           }
  
ExpandedSubBlockEnd.gif
59}
  
InBlock.gif
60//-->  
ExpandedBlockEnd.gif
61
</script>  
None.gif62    
</div>
None.gif63    
</form>

下面是通用的:
None.gif 1    <form id="myform" runat="server">
None.gif 2    
<div>
None.gif 3         
<table  border="0"  width="300">  
None.gif 4             
<tr>  
None.gif 5             
<td  width="40%">
None.gif 6                 
<select  style="WIDTH:100%"  multiple  name="list1"  size="12"  ondblclick="moveOption(document.myform.list1,  document.myform.list2)">  
None.gif 7                 
<option  value="北京">北京</option>  
None.gif 8                 
<option  value="上海">上海</option>  
None.gif 9                 
<option  value="山东">山东</option>  
None.gif10                 
<option  value="安徽">安徽</option>  
None.gif11                 
<option  value="重庆">重庆</option>  
None.gif12                 
<option  value="福建">福建</option>  
None.gif13                 
<option  value="甘肃">甘肃</option>  
None.gif14                 
<option  value="广东">广东</option>  
None.gif15                 
<option  value="广西">广西</option>  
None.gif16                 
<option  value="贵州">贵州</option>  
None.gif17                 
<option  value="海南">海南</option>  
None.gif18                 
<option  value="河北">河北</option>  
None.gif19                 
<option  value="黑龙江">黑龙江</option>  
None.gif20                 
<option  value="河南">河南</option>  
None.gif21                 
<option  value="湖北">湖北</option>  
None.gif22                 
<option  value="湖南">湖南</option>  
None.gif23                 
<option  value="内蒙古">内蒙古</option>  
None.gif24                 
<option  value="江苏">江苏</option>  
None.gif25                 
<option  value="江西">江西</option>  
None.gif26                 
<option  value="吉林">吉林</option>  
None.gif27                 
<option  value="辽宁">辽宁</option>  
None.gif28                 
<option  value="宁夏">宁夏</option>  
None.gif29                 
<option  value="青海">青海</option>  
None.gif30                 
<option  value="山西">山西</option>  
None.gif31                 
<option  value="陕西">陕西</option>  
None.gif32                 
<option  value="四川">四川</option>  
None.gif33                 
<option  value="天津">天津</option>  
None.gif34                 
<option  value="西藏">西藏</option>  
None.gif35                 
<option  value="新疆">新疆</option>  
None.gif36                 
<option  value="云南">云南</option>  
None.gif37                 
<option  value="浙江">浙江</option>  
None.gif38                 
<option  value="香港">香港</option>  
None.gif39                 
<option  value="澳门">澳门</option>  
None.gif40                 
<option  value="台湾">台湾</option>  
None.gif41                 
<option  value="其他">其他</option>  
None.gif42                 
</select>  
None.gif43           
</td>  
None.gif44           
<td  width="20%"  align="center">  
None.gif45                
<input  type="button"  value="添加"  onclick="moveOption(document.myform.list1,  document.myform.list2)"><br><br>
None.gif46                
<input  type="button"  value="删除"  onclick="moveOption(document.myform.list2,  document.myform.list1)"> 
None.gif47           
</td>  
None.gif48           
<td  width="40%">  
None.gif49               
<select  style="WIDTH:100%"  multiple  name="list2"  size="12"  ondblclick="moveOption(document.myform.list2,  document.myform.list1)">  
None.gif50               
</select>  
None.gif51           
</td>  
None.gif52           
<td>  
None.gif53               
<button  onclick="changepos(list2,-1)"  type="button">上移</button><br>  
None.gif54               
<button  onclick="changepos(list2,1)"  type="button">下移</button>  
None.gif55           
</td>  
None.gif56           
</tr>  
None.gif57         
</table>  
None.gif58           值:
<input  type="text"  name="city"  size="40">  
ExpandedBlockStart.gifContractedBlock.gif59
<script  language="JavaScript">dot.gif  
InBlock.gif
60<!--  
ExpandedSubBlockStart.gifContractedSubBlock.gif61
function  moveOption(e1,  e2)dot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
62           trydot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
63           for(var  i=0;i<e1.options.length;i++)dot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
64           if(e1.options[i].selected)dot.gif{  
InBlock.gif
65           var  e  =  e1.options[i];  
InBlock.gif
66           e2.options.add(new  Option(e.text,  e.value));  
InBlock.gif
67           e1.remove(i);  
InBlock.gif
68           i=i-1  
ExpandedSubBlockEnd.gif
69           }
  
ExpandedSubBlockEnd.gif
70           }
  
InBlock.gif
71           document.myform.city.value=getvalue(document.myform.list2);  
ExpandedSubBlockEnd.gif
72           }
  
ExpandedSubBlockStart.gifContractedSubBlock.gif
73           catch(e)dot.gif{}  
ExpandedSubBlockEnd.gif
74}
  
ExpandedSubBlockStart.gifContractedSubBlock.gif75
function  getvalue(geto)dot.gif{  
InBlock.gif
76           var  allvalue  =  "";  
ExpandedSubBlockStart.gifContractedSubBlock.gif
77           for(var  i=0;i<geto.options.length;i++)dot.gif{  
InBlock.gif
78           allvalue  +=geto.options[i].value  +  ",";  
ExpandedSubBlockEnd.gif
79           }
  
InBlock.gif
80           return  allvalue;  
ExpandedSubBlockEnd.gif
81}
  
InBlock.gif82
function  changepos(obj,index)  
ExpandedSubBlockStart.gifContractedSubBlock.gif
83dot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
84           if(index==-1)dot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
85           if  (obj.selectedIndex>0)dot.gif{  
InBlock.gif
86           obj.options(obj.selectedIndex).swapNode(obj.options(obj.selectedIndex-1))  
ExpandedSubBlockEnd.gif
87           }
  
ExpandedSubBlockEnd.gif
88           }
  
ExpandedSubBlockStart.gifContractedSubBlock.gif
89           else  if(index==1)dot.gif{  
ExpandedSubBlockStart.gifContractedSubBlock.gif
90           if  (obj.selectedIndex<obj.options.length-1)dot.gif{  
InBlock.gif
91           obj.options(obj.selectedIndex).swapNode(obj.options(obj.selectedIndex+1))  
ExpandedSubBlockEnd.gif
92           }
  
ExpandedSubBlockEnd.gif
93           }
  
ExpandedSubBlockEnd.gif
94}
  
InBlock.gif
95//-->  
ExpandedBlockEnd.gif
96
</script>  
None.gif97    
</div>
None.gif98    
</form>

转载于:https://www.cnblogs.com/cooltonyhawk/articles/704714.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洛谷1345 [Usaco5.4]奶牛的电信

题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系&#xff0c;于是她们建立了一个奶牛电脑网络&#xff0c;以便互相交流。这些机器用如下的方式发送电邮&#xff1a;如果存在一个由c台电脑组成的序列a1,a2,...,a(c)&#xff0c;且a1与a2相连&#xff0c;a2与a3相连&#xff0c;…

有意思,USB资料分享

前几天&#xff0c;有个同学在微信问我 「发哥&#xff0c;能不能给我分享一些USB的资料吗&#xff1f;」-- 然后就有了今天的文章。我对USB印象很深&#xff0c;源于两个事情第一件事情是&#xff0c;我有一个大学同学&#xff0c;他的名字里面有一个「发」字&#xff0c;我们…

不知道的,还以为是555牌香烟

你认为历史上最成功的芯片是什么&#xff1f;就是出货很多很多那种。Intel的酷睿系列&#xff1f;NO&#xff01;AMD&#xff1f;错&#xff01;别猜了&#xff0c;原来是它&#xff01;这就是电工的神器——555定时器&#xff0c;从诞生到现在&#xff0c;销量过百亿&#xff…

Linux操作寄存器前为什么要ioremap

1. 原因这里只考虑有 MMU 的芯片&#xff0c;Linux 为了实现进程虚拟地址空间&#xff0c;在启用 MMU 后&#xff0c;在内核中操作的都是虚拟地址&#xff0c;内核访问不到物理地址。如果在驱动里直接访问物理地址&#xff0c;等于访问了一个非法地址&#xff0c;会导致内核崩溃…

Loading页的实现代码

用了几种Loading页的代码&#xff0c;还是算这个好用了。真的佩服牛人们的思想。有的说用DIV来实现遮盖后面的东西&#xff0c;当FORM加载完后&#xff0c;执行CLOSE()d的JS函数。我试验了几次&#xff0c;效果不是那么好。也主要是由于我吧东西都放在我本地&#xff0c;感觉不…

做算法,为什么建议你一定要学懂C++?

在工业界&#xff0c;有这样一个规律&#xff1a;“ 但凡能用其他语言的都不会用C&#xff0c;只能用C的必然用C。”但是&#xff0c;C的学习和项目开发都比较困难。一个有经验的老手也经常搞出野指针&#xff0c;内存泄露等bug&#xff0c;包括我自己在学C的时候也非常痛苦。所…

AI一键注释代码、阅读整个项目、转换编程语言。已开源!

获取github源码地址和国内url、key方式&#xff1a;在文章底部 大家好今天给大家介绍一款开源项目&#xff0c;这个项目是由渡码维护的&#xff0c;这个项目支持自己的大模型和使用openai两种方式&#xff0c;本文章介绍使用openai的方式&#xff01; 使用过程中发现两个问题…

为什么别人赚钱比自己容易?

之前的文章提到自己的一个同事&#xff0c;在一家公司干了10年&#xff0c;最近跳槽找了份5万薪水的工作&#xff0c;大家都很想听他的故事。为了方便记录&#xff0c;我叫他文哥文哥比我们一般的毕业生厉害&#xff0c;他比我大将近9岁&#xff0c;我在初中的时候他已经是一个…

Linux下遍历目录下的文件

方法1&#xff1a;http://tag.csdn.net/Article/ef431d9b-68b3-419f-9f85-1fb9279f904a.html//ListFile.cpp#include <stdio.h>#include <dirent.h>#include <sys/types.h>intmain(intargc, char*argv[]){ if (2 ! argc){ printf("Usage:ListFileSource…

15张图来了解【树】,面试再也不怕被刷了

我之前的文章C语言实现树&#xff0c;你一定看得懂树的概念什么是树&#xff1f;树属于非线性数据结构的一种&#xff0c;概念也极多&#xff0c;是由结点或顶点和边组成的且不存在着任何环的一种数据结构。没有结点的树称为空树。一棵非空的树包括一个根结点&#xff0c;还很可…

String源码图

String StringBuffer StringBuilder 均为对字符数组的操作。 实现了不同的接口&#xff0c;导致不同的覆写。 实现了同样的接口&#xff0c;适应不同的场景。 转载于:https://www.cnblogs.com/zhengwenqiang/p/8076495.html

呵,你会51单片机的精确延时吗?

文章整理自网络序对于某些对时间精度要求较高的程序&#xff0c;用 c 写延时显得有些力不从心&#xff0c;故需用到汇编程序。本人通过测试&#xff0c;总结了 51 的精确延时函数(在 c 语言中嵌入汇编)分享给大家。至于如何在 c 中嵌入汇编大家可以去网上查查&#xff0c;这方面…

--4、实验室设备管理(表)

--4、实验室设备管理create table Computer( Computer_id int Identity Primary key,--设备编号 Computer_name varchar(50) not null,--设备名称 Computer_num varchar(50) not null,--设备编号,财产号 room_id int not null,--实验室编号 --Computer_IP varchar(128), -…

C#中Invoke的用法

在用.NET Framework框架的WinForm构建GUI程序界面时&#xff0c;如果要在控件的事件响应函数中改变控件的状态&#xff0c;例如&#xff1a;某个按钮上的文本原先叫“打开”&#xff0c;单击之后按钮上的文本显示“关闭”&#xff0c;初学者往往会想当然地这么写&#xff1a; v…

嵌入式如何入门,要不要学习Python

#提问我是你的公众号读者朋友&#xff0c;江苏省在读大学生一名&#xff0c;目前是大四免研。研究生方向是嵌入式系统与应用(导师招这样的学生&#xff0c;但是本身设计这个方向不多)&#xff0c;目前还比较有时间&#xff0c;想要自己深入学习一下嵌入式方面的知识&#xff0c…

深入理解cache对写好代码至关重要

There are only two hard things in Computer Science: cache invalidation and naming things.-- Phil Karlton全文目录CACHE基础CACHE的组织TAG,INDEXVIVT,VIPT,PIPTCache别名问题CACHE一致性icache、dcache同步多CPU核cache同步CPU与设备cache同步意识到CACHE的编程perf中的…

Linux 用户空间和内核空间

最近在微信群里看到有人提这个问题&#xff0c;然后查了下资料&#xff0c;觉得这篇文章是写得最能让人看懂的&#xff0c;分享给大家。欢迎大家评论说出自己的见解&#xff0c;让更多的人更容易理解这部分知识。之前的相关文章Linux内存&#xff0c;先看这篇文章Linux物理内存…

一个深入学习Linux/C/C++的原创技术号

今天给大家推荐一个Linux/C/C领域的公众号&#xff0c;大家都知道这个领域的号不多&#xff0c;而【编程珠玑】就是这样一个专注该领域的原创类公众号&#xff0c;原创占比95%以上&#xff0c;目前已有原创文章200多篇&#xff0c;而且原创间环环相扣&#xff0c;皆有关联。公众…

Linux 资料大全

Hello all&#xff0c;给大家分享一些 Linux 学习资料&#xff0c;包含&#xff1a;社区网站、在线教程、命令大全、在线模拟器、经典书籍、镜像站点等 ...从入门到进阶&#xff0c;应有尽有。无论你是小白&#xff0c;还是 Linux 高手&#xff0c;都不容错过&#xff0c;100% …