Использование Aspnet, C # 3.5 в версии 2008:
Я успешно использовал следующий код в столбце шаблонов вида сетки или списка:
<asp:Button ID="btnShow" runat="server" Text="?"
TabIndex="-1" CommandName="ShowDefinition"
CommandArgument='<%# Eval("PKey") %>' />
С кодом позади, чтобы получить идентификатор для строки, в которой была нажата кнопка. :
protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName == "ShowDefinition")
{
int showRecordPKey = Convert.ToInt32(e.CommandArgument);
}
}
Теперь я пытаюсь динамически (условно) поместить эту кнопку в столбец.
Я попытался сделать это, используя заполнитель со следующим кодом:
public class BtnShow
{
public Button btnShow = new Button();
PlaceHolder ph = new PlaceHolder();
public BtnShow(string commandName,string displayText, PlaceHolder ph)
{
btnShow.ID = "btnShow";
btnShow.Text = "?";
btnShow.TabIndex = -1 ;
btnShow.CommandName = "ShowDefinition";
btnShow.CommandArgument = "(<%# Eval('PKey') %>" ;
this.ph = ph;
}
public void AddQuMarkToPlaceholder()
{
ph.Controls.Add(btnShow);
}
Кнопка генерируется, но аргумент команды не оценивается, строка
«(<% # Eval ('PKey')%>» передается в качестве аргумента команды.
Как я могу делать то, что пытаюсь сделать?