BS中保存参数

          

开发中经常需要将值存起来,当点击某一项时以便知道点击了哪一项。

 

一:应用JS页面跳转(牛腩中讲到)

HTML:

<span style="font-size:18px"><td class="txt c"><a  href='ModifyExamStudentInformationVir.aspx?ExanID=<%#Eval("ExanID")%> & WorkNo=<%#Eval("WorkNo")%>' target="_blank"><%#Eval("CourseTypeCode") %></a></td>
</span>

后台:

<span style="font-size:18px">string WorkNo = Request.QueryString["WorkNo"];
string ExamID = Request.QueryString["ExamID"];
</span>

二:使用LinkButton的CommandArgument保存参数方式。(无需跳转页)

 

LinkButton组件是一个服务器端的组件,类似于HTML中的<A>标识符。主要作用是就是在页面中显示一个超链接。当这个链接被按动的时候,页面就会往服务器端传递信息,并且在服务器端来处理相应的事件。

 

1LinkButton常用属性和事件:

 

a,CommandName,CommandArgument这二个属性在功能上基本相同,当Click事件被触发的时候,通过这二个属性可以方便的往服务器端传递数据。

b,OnClick这个事件是当组件被Click的时候触发

c,OnCommand这也是一个事件,并和上面OnClick事件类似,区别在于,这个事件在被触发的时候,往服务器端传递CommandName,CommandArgument属性值.

 

2CommandName属性和CommandArgument属性:

 

LinkButton组件中CommandName属性和CommandArgument有着非常重要的作用。


举例如下:


假如页面中有100 LinkButton,那么在服务器端要判断到底是哪个LinkButton被按动了。如果没有这二个属性,可以通过给每一个LinkButtonText属性赋值,然后通过检测Text属性值,来判断到底是哪个LinkButton被按动了。可以通过给每一个LinkButton命不同的名然后在事件处理函数中,通过检测Sender属性值来判断哪个LinkButton被按动。虽然上述这些方法都是可行的,但无一不繁琐。有了CommandName属性和CommandArgument属性就可以方便的解决这些问题。

 

在程序中给LinkButtonCommandName属性和CommandArgument属性赋值,然后通过OnCommand事件中,可以得到从CommandEventArgs类中的数据,从而判断哪个 LinkButton动。CommandEventArgs类存储了和按钮(Button)事件相关的数据,并且可以在事件处理中通过CommandEventArgs类的属性来访问数据。当LinkButton被按动后,这个LinkButton所触发的数据都被储存到服务器的CommandEventArgs类中,访问CommandEventArgs类中的属性就访问了被按动的LinkButton

 

3,LinkButton使用方法举例说明(根据id值去服务器查找):


前台:


代码如下:

<span style="font-size:18px"><asp:LinkButton runat="server" ID="lbtnUp" CommandArgument='<%#Eval("id") %>' OnClick="lbtnUp_Click">修改</asp:LinkButton>
</span>

后台:


代码如下:


<span style="font-size:18px">protected void lbtnUp_Click(object sender, EventArgs e)
{
   string id = ((LinkButton)sender).CommandArgument;
}
</span>

应用举例(直接用js显示):


当网页上有多个 LinkButton 控件时,使用 CommandName 属性指定或确定与所单击的 LinkButton控件关联的命令名。可以用标识要执行的命令的任何字符串来设置 CommandName 属性。然后,可以以编程方式确定 LinkButton控件的命令名并执行相应的操作。

使用 CommandArgument 属性可以指定命令的补充信息(如指定 Ascending 排序顺序)。


<span style="font-size:18px"><%@ Page Language="C#" AutoEventWireup="True" %>
<html>
<head>
<script language="C#" runat="server">
     
      void LinkButton_Command(Object sender, CommandEventArgs e) 
      {
         Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument;
      }
 
   </script>
 
</head>
<body>
 
   <form runat=server>
 
      <h3>LinkButton Command Event Example</h3>
  
      <asp:LinkButton id="LinkButton1" 
           Text="Order Item 10001"
           CommandName="Order" 
           CommandArgument="10001" 
           OnCommand="LinkButton_Command" 
           runat="server"/>
 
      <br>
  
      <asp:LinkButton id="LinkButton2" 
           Text="Order Item 10002"
           CommandName="Order" 
           CommandArgument="10002" 
           OnCommand="LinkButton_Command" 
           Runat="server"/>
 
      <br>
      <p>
 
      <asp:Label id="Label1" runat="server"/>
 
   </form>
</body>
</html>
</span>

附加:LinkButton绑定多值


举例:

<span style="font-size:18px"><asp:LinkButton ID="btnSell" class="btn" OnCommand="btnSell_Click" CommandName="Skip"
CommandArgument="<%# Eval("TicketID").ToString()+"|"+Eval("TotalCount").ToString()+"|"+Eval("SellCount").ToString() %>' runat="server"></asp:LinkButton>  
</span>

后台:

  public void btnSell_Click(object sender, CommandEventArgs e)
    {
        string parmString= e.CommandArgument.ToString();
        string[] parmStr = parmString.Split('|');
 
        Response.Redirect("./app_visit_detail.aspx?id=" + parmStr[0] + "&appName=" + parmStr[1] + "&logonTime=" + parmStr[2]);
    }



应用Split函数,将获取到的字符串在字符串的'|'处拆分即可


举例:

如何在字符串的空格处拆分该字符串

DimTestString As String = "Look at these!"

' 返回的数组包含 "Look", "at",and "these!".

DimTestArray() As String = Split(TestString)

 



  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值