您的位置:首页 > 编程语言 > ASP

asp.net后台前台代码相互绑定大总结

2012-01-21 09:28 246 查看
[b][b][b][b][/b]一.把后台代码写到前台去[/b][/b][/b]
[b][/b]
[b][b]1 对于普通的html标签和普通服务器控件绑定后台变量(变量一定要public)[/b][/b]

.cs

// 加载方式

public string loadtype;

protected void Page_Load(object sender, EventArgs e)

{

// 检测是否首次加载

if (Request.QueryString["loadType"] != null)

{

loadtype = Request.QueryString["loadType"].ToString();

}

}



.aspx

<div style='display:<%=loadtype=="1"?"none":"inline"%>'>............</div>



先通过<%=loadtype%>标签获取到loadtype,再对loadtype进行判断,这个时候<%=loadtype%>可能不变黄,没有关系。





[b]2.在Gridview或repeater数据绑定控件里绑定后台变量[/b]



我们知道,不是那个角色都可以设置监控点的。那么我需要在绑定的时候,判断一下,这个人的usertpye是多少。那么怎么办判断呢?看代码:



<asp:TemplateField HeaderText="操作">

<ItemTemplate>

<a href="EditUser.aspx?userId=<%# eval_r("ID") %>">修改</a>

<a href="EditPWD.aspx?userId=<%# eval_r("ID") %>">重设密码</a>

<%#Convert.ToUInt32(eval_r("UserType")) == 7 ?

"<a href=../Point.aspx?userid=" + eval_r("ID") + ">分配监控点</a>" : ""%>

</ItemTemplate>

</asp:TemplateField>



简单吧!其实其他的控件如repeater,datalist等等,都可以效法!



我们再看一例:

<asp:LinkButton ID="linkbtnCloseOrOpen" runat="server" CommandName='<%#eval_r("IsClosed") %>' CommandArgument='<%#eval_r("ID") %>'>

<%#bool.Parse(eval_r("IsClosed").ToString())?"打开监控点":"关闭监控点" %>

</asp:LinkButton>





3.引申——绑定后台方法

由1,2的区别,看二者3的区别——也就是<%=%>和<%#%>绑定方法的区别,懂了吧!


<%=Add()%>

<%#Add()%>

拿第二种举个例子吧

在后台有这样的方法



public Test_Paper GetPaper(int id)

{

return BLL.Test_PaperBLL.ReadTestPaperByID(id);

}
在前台这样用
<%#GetPaper(Convert.ToInt32(eval_r("PaperNum"))).Name %>)

需要注意的是eval_r("PaperNum")获取的是object类型,注意类型转化。

再看例子

<%#GetChoose(eval_r("QId")).OptionA == null ? "" : "<input type='radio' name='choose"+eval_r("QId")+"'>A." + GetChoose(eval_r("QId")).OptionA + "</input>"%>



4.<%%>干吗用啊?

这样用:



<%

int countValue = id;

%>

<div style='display:<%=countValue==1?"none":"inline"%>'></div>



①<%%>中可以获取后台中public的字段,像例子中的id

②可以声明变量

③变量可以再前台使用

④可以再<%%>对后台的数据进行一些逻辑操作,当然,这种逻辑操作可以在后台完成,再在前台获取后台方法,如本文的第三个大标题一样!





再看一例

<%if (user.CompanyId==1)

{

%>

<tr>

<td align="left" class="box" onclick="hiddenTree('table13'住建局安办</td>

</tr>

<tr>

<td align="left" class="text3">

<table id="table13" style="display:none;" width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td align="left" class="text3"><a href="/Manage/CheckPoints.aspx"

target="mainFrame">住建局监控</a></td>

</tr>

</table>

</td>

</tr>

<%} %>







二把前台代码写到后台去



我们不仅可以在前台写代码,也可以在后台写前台的代码



比如:

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<%=str2.ToString()%>

<tr>

<td width="37%" height="30"></td>

<td width="31%" height="30"></td>

<td width="32%" height="30"> </td>

</tr>

</table>





那么在后台的话:



j += 1;

str2.Append("<tr>");

str2.Append("<td id=\"td2" + j + "\" width=\"37%\" height=\"30\" align=\"left\">");

str2.Append(j + GetEvaluation(resultInfo.EvaluationID).Evaluation);

str2.Append("</td>");

str2.Append("<td width=\"31%\" height=\"30\">");

str2.Append("<input name=\"resultId2" + j + "\" value=\"" + resultInfo.ID + "\" type=\"hidden\">");

..............................................................................

str2.Append("</tr>");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: