using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace MyControls
{
public class PagePropertyParameter : Parameter
{
private string _propertyName;
protected override object Evaluate(HttpContext context, Control control)
{
return DataBinder.Eval(control.Page, PropertyName);
}
public string PropertyName
{
get { return _propertyName; }
set { _propertyName = value; }
}
}
}
File: ShowPagePropertyParameter.aspx
<%@ Page Language="C#" %>
<%@ Register TagPrefix="custom" Namespace="MyControls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
Public ReadOnly Property CurrentUsername() As String
Get
Return User.Identity.Name
End Get
End Property
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Show Page Property Parameter</title>
</head>
<body>
<form id="form1" runat="server">
<asp:FormView
id="frmGuestbook"
DataSourceID="srcGuestbook"
DefaultMode="Insert"
Runat="server">
<InsertItemTemplate>
<asp:Label
ID="lblComment"
Text="Comment:"
AssociatedControlID="txtComment"
Runat="server" />
<asp:TextBox
id="txtComment"
Text='<%# Bind("comment") %>'
TextMode="MultiLine"
Runat="server" />
<asp:Button
id="btnInsert"
Text="Add Entry"
CommandName="Insert"
Runat="server" />
</InsertItemTemplate>
</asp:FormView>
<asp:GridView
id="grdGuestbook"
DataSourceID="srcGuestbook"
CssClass="guestbook"
Runat="server" />
<asp:ObjectDataSource
id="srcGuestbook"
TypeName="YourDataSource"
SelectMethod="Getter"
Runat="server">
<InsertParameters>
<custom:PagePropertyParameter
Name="Username"
PropertyName="CurrentUsername" />
</InsertParameters>
</asp:ObjectDataSource>
</form>
</body>
</html>
|