Как использовать возвращенное значение из gridwiew_rowcommand для поиска в базе данных?
Я пытаюсь использовать кнопку в моем сеточном представлении, чтобы передать идентификатор, который является GUID из выбранной строки, в мою базу данных, где я сравниваю ее с направляющими в базе данных, затем я передаю ее в свою функцию "Показать" и получаю пост из базы данных.
Прямо сейчас я понятия не имею, как получить объект "висадабок" от моей кнопки до моего "Показать".
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
}
else
{
//TextBox68.Text = Request["ID"];
if (!string.IsNullOrEmpty(TextBox68.Text))
{
Show(GridView1_RowCommand());
}
}
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Valj")
{
var valj = new Guid((string)e.CommandArgument);
var visadagbok = (from x in DagbokFactoryBase.All
where (x.ID == valj)
select x).FirstOrDefault();
return visadagbok;
}
}
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="AddButton" runat="server"
CommandName="Valj"
CommandArgument="<%# ((GridViewRow) Container).ID %>"
Text="Gå till" />
</ItemTemplate>
</asp:TemplateField>
1 ответ
Решение
Тип возврата для GridView1_RowCommand
является недействительным, поэтому метод не сможет вернуть какие-либо данные Show
метод. Есть 2 варианта, которые вы можете выполнить
- Позвоните
Show
метод изGridView1_RowCommand
Метод (лучший вариант, так как.net Framework выполняет событие, вызывающее сетку)
например
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Valj")
{
var valj = new Guid((string)e.CommandArgument);
var visadagbok = (from x in DagbokFactoryBase.All
where (x.ID == valj)
select x).FirstOrDefault();
Show(visadagbok);
}
}
- Если вы хотите написать программирование на основе событий для потери связи, для этого вам необходимо создать свойство, которое вызывает делегат, когда значение свойства установлено. Присвойте значение свойству из "GridView1_RowCommand". Этот делегат будет вызывать метод "Показать".
лайк:
public delegate void ShowHandler(string id);
public string Id
{
set
{
ShowHandler _show = new ShowHandler(Show);
if (_show != null)
{
_show(value);
}
}
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
//set of existing code
Id = visadagbok
}
public void Show(string Id)
{
//set of code
}