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

[Asp.Net]后台前台代码相互绑定大总结

2012-01-30 09:50 246 查看
一.把后台代码写到前台去



[b]1 对于普通的html标签和普通服务器控件绑定后台变量(变量一定要public)[/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%>可能不变黄,没有关系。

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

我们知道,不是那个角色都可以设置监控点的。那么我需要在绑定的时候,判断一下,这个人的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>");

参考代码:

http://blog.csdn.net/woshixuye/article/details/7218777
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: