0
我目前正試圖實現一個自定義的gridview接口來顯示數據從ObjectDataSource前端到ASP.net成員資格。爲GridView asp.net代碼是自定義gridview - 綁定使用非靜態函數
<asp:GridView
id="grdUsers"
HeaderStyle-cssclass="grid_header"
RowStyle-cssclass="row"
AlternatingRowStyle-cssclass="alternating"
OnRowUpdating="grdUsers_RowUpdating"
OnRowDeleting="grdUsers_RowDeleting"
OnRowCancelingEdit="grdUsers_cancelEdit"
datasourceid="srcUsers"
autogeneratecolumns="false"
allowsorting="true"
AllowPaging="true"
EmptyDataText="No users..."
pagesize="9"
runat="server">
<Columns>
<asp:CommandField
HeaderText="Ops"
ButtonType="Image"
ShowEditButton="true"
EditText="E"
UpdateText="U"
ShowCancelButton="true"
CancelText="X"
ShowDeleteButton="true"
DeleteText="D" />
<asp:BoundField
ReadOnly="true"
DataField="UserName"
HeaderText="UserName" />
<asp:BoundField
DataField="Email"
HeaderText="Contact Email" />
<asp:TemplateField
HeaderText="Role">
<ItemTemplate>
<asp:Label
ID="lblRole"
text="<%# namespace.Admin.getRoleOfUser() %>"
runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:CheckBoxField
DataField="IsApproved"
HeaderText="User is Approved" />
<asp:TemplateField
HeaderText="UserLocked">
<ItemTemplate>
<asp:CheckBox
id="grdUsers_lockCheckBox"
Checked='<%# Eval("IsLockedOut") %>'
Enabled="false"
runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:Button
id="grdUsers_unlockUser"
OnClick="grdUsers_unlockUser"
Text="Unlock"
runat="server" />
<asp:HyperLink
id="grdUsers_lockInfo"
text="?"
onclick='popup("lock_info.html")'
runat="server" />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我的代碼目前正在死去,因爲功能得到roleOfUser()是一個公共職能。最好我想傳遞一個UserName的字符串(從GridView的第二個單元格拉)到這個函數,但我不確定,以及如何調用這個非靜態函數,因爲我不知道如何從asp.net代碼實例化它。
public string getRoleOfUser()
{
GridView users = (GridView)admin.FindControlRecursive(Page, "grdUsers");
Int32 i = users.EditIndex;
GridViewRow userRow = users.Rows[i];
return userRow.Cells[1].Text;
}
private Control FindControlRecursive(Control root, string id)
{
if (root.ID == id)
{
return root;
}
foreach (Control c in root.Controls)
{
Control t = FindControlRecursive(c, id);
if (t != null)
{
return t;
}
}
return null;
}
這確實有效。我似乎記得嘗試並獲取命名空間錯誤,但它現在正在工作:)謝謝。 – PhrkOnLsh 2009-05-26 16:47:01
很高興爲您服務。 – jrista 2009-05-26 16:56:42