我試圖在點擊我的按鈕時得到一個id。我的按鈕裏面一個GridViewAsp:帶有CommandArgument的GridView按鈕
<asp:GridView runat="server" AutoGenerateColumns="false"
ID="UsersGridView" AllowPaging="true"
CssClass="table table-hover table-striped"
UseAccessibleHeader="true" GridLines="None">
<Columns>
<asp:BoundField DataField="User.FullName" HeaderText="User" />
<asp:BoundField DataField="Book.Title" HeaderText="Book" />
<asp:BoundField DataField="BooksReserved.DateOut" HeaderText="Return Date"
FooterStyle-BackColor="#ff0000" DataFormatString="{0:d}" />
<asp:TemplateField ShowHeader="false">
<ItemTemplate>
<asp:LinkButton ID="userProfile" runat="server" OnCommand="userProfile_Command"
CommandArgument='<% Eval("User.Id") %>'
Text="Open User Profile" CssClass="btn btn-success" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在後面方法Page_Load中的代碼,我從3個表加載我的gridview的數據:
protected void Page_Load(object sender, EventArgs e)
{
// Users Grid
var query = from u in db.Users
join br in db.BooksReserveds on u.Id equals br.UserId
join b in db.Books on br.BookId equals b.Id
where br.DateOut < DateTime.Today
orderby br.DateOut
select new { User = u, BooksReserved = br, Book = b };
UsersGridView.DataSource = query.ToList();
UsersGridView.DataBind(); }
而在按鈕的點擊,我試圖讓該ID:
protected void userProfile_Command(object sender, CommandEventArgs e)
{
try
{
int id = Int32.Parse(e.CommandArgument.ToString());
var query = from u in db.Users
where u.Id == id
select u;
} catch(Exception any)
{
Console.WriteLine(any.ToString());
}
}
我收到異常:「輸入字符串不是正確的格式。」
有誰知道爲什麼?
感謝
您可以渲染只是'<%Eval(「User.Id」)%> ItemTemplate>'來查看輸出是否顯示整數值嗎? –
Win
它給我一個語法錯誤。預期a; – user6824563