在后台代码中设置评估 [英] Set Eval in Code Behind
问题描述
<asp:GridView ID="Grd" runat="server" AutoGenerateColumns="false" CssClass="GridStyle" HeaderStyle-Font-Size="Small" Width="1001px" Height="300px">
<Columns>
<asp:TemplateField HeaderStyle-Width="160px" Visible="false" HeaderText="Action">
<ItemTemplate>
<asp:Button ID="btnProcess" runat="server" Text="Place" OnClick="btnProcess_Click"
CommandArgument='<%#Eval("intId") & "~" & Eval("IdECompleted") & "~" & Eval("dtECompletion") & "~" & Eval("strName") & " " & Eval("strCode") & " " & Eval("strAge") & " " & Eval("strGender") & "~" & Eval("dtStart") & "~" & Eval("strContactP") & "~" & Eval("strAdd") & "~" & Eval("strPhone") & "~" & Eval("intSalary") & "~" & Eval("bitAgree") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我想像下面一样使用它,但是会出现错误:-
I want to use it like below but gets error: -
Private Sub Grd_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles Grd.RowDataBound
If Session("poweradmin") = True Then
Dim btnProcess As New Button
btnProcess = CType(e.Row.FindControl("btnProcess"), Button)
btnProcess.CommandArgument = "'<%#Eval("intId") & "~" & Eval("IdECompleted") & "~" & Eval("dtECompletion") & "~" & Eval("strName") & " " & Eval("strCode") & " " & Eval("strAge") & " " & Eval("strGender") & "~" & Eval("dtStart") & "~" & Eval("strContactP") & "~" & Eval("strAdd") & "~" & Eval("strPhone") & "~" & Eval("intSalary") & "~" & Eval("bitAgree") %>' />"
End If
End Sub
推荐答案
我认为在这种情况下,可以在代码后面设置值并进行更好的验证.我不知道您使用的是哪个列表控件,如果您使用的是GridView,则在rowdatabound事件中获取控件,然后相应地设置属性.
谢谢
I think so in this situation set value in code behind with better validation. I don''t know which list control you are using let say if you are using GridView then fetch control in rowdatabound event and then set the property accordingly.
Thanks
尝试以下操作:
将所有& 替换为 + :
Try following:
Replace all & by +:
CommandArgument='<%#Eval("intId") + "~" + Eval("IdECompleted") + "~" + Eval("dtECompletion") + "~" + Eval("strName") + "-" + Eval("strCode") + "-" + Eval("strAge") + "-" + Eval("strGender") + "~" + Eval("dtStart") + "~" + Eval("strContactP") + "~" + Eval("strAdd") + "~" + Eval("strPhone") + "~" + Eval("intSalary") + "~" + Eval("bitAgree") %>' />
更新后的V-1
http://forums.asp.net/post/3264875.aspx [ http://stackoverflow.com/questions/661670/how-to-在条件视图中实现条件条件 [ ^ ]
http://www.aspsnippets.com/Articles/Conditional-Statement-and-String-Formatting-using-Eval-in-ASP.Net.aspx [
^ ]
更新的V-2
http://stackoverflow.com/questions/2359790/如何在设置页面标题后的代码中使用代码 [ GridView和CommandArguments
UPDATED V-1
http://forums.asp.net/post/3264875.aspx[^]
http://stackoverflow.com/questions/661670/how-to-implement-conditional-formatting-in-a-gridview[^]
http://www.aspsnippets.com/Articles/Conditional-Statements-and-String-Formatting-using-Eval-in-ASP.Net.aspx[^]
http://dotnetblogger.com/post/2009/06/16/Inline-Conditional-Statement-using-Eval%28%29-or-Bind%28%29-to-ShowHide-%28Visibile%29-LinkButton-in-a-GridView.aspx[^]
UPDATED V-2
http://stackoverflow.com/questions/2359790/how-to-use-eval-in-codebehind-to-set-page-title[^]
GridView and CommandArguments
Private Sub Grd_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles Grd.RowDataBound
If Session("poweradmin") = True Then
If e.Row.RowType = DataControlRowType.DataRow Then
Dim btnProcess As New Button
btnProcess = CType(e.Row.FindControl("btnProcess"), Button)
btnProcess.CommandArgument = DataBinder.Eval(e.Row.DataItem, "intId") & "~" & DataBinder.Eval _
(e.Row.DataItem, "IdECompleted") & "~" & DataBinder.Eval(e.Row.DataItem, "dtECompletion") & "~" & DataBinder.Eval _
(e.Row.DataItem, "strName") & " " & DataBinder.Eval(e.Row.DataItem, "strCode") & " " & DataBinder.Eval _
(e.Row.DataItem, "strCurrAge") & " " & DataBinder.Eval(e.Row.DataItem, "strGender") & "~" & DataBinder.Eval _
(e.Row.DataItem, "dtStart") & "~" & DataBinder.Eval(e.Row.DataItem, "strContactP") & "~" & DataBinder.Eval _
(e.Row.DataItem, "strAdd") & "~" & DataBinder.Eval(e.Row.DataItem, "strPhone") & "~" & DataBinder.Eval _
(e.Row.DataItem, "intSalary") & "~" & DataBinder.Eval(e.Row.DataItem, "bitAgree")
End If
End If
End Sub
这篇关于在后台代码中设置评估的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!