Реализация функциональной связи в системе управления ретранслятором
Я использую ретранслятор в своем веб-приложении для отображения данных. Я хочу добавить функциональные ссылки действий в столбец, подобный встроенной функциональности в GridView. Может ли кто-нибудь дать мне необходимые шаги? Я предполагаю, что добавлю элемент управления LinkButton к каждой строке, каким-то образом настрою обработчик событий OnClick, чтобы он указывал на тот же метод, и каким-то образом передам уникальный идентификатор в строке в качестве параметра.
Спасибо!
3 ответа:
Я предполагаю, что это то, чего ты хочешь.
<asp:Repeater ID="rpt" runat="server"> <ItemTemplate> <asp:LinkButton ID="lbtn" runat="server" OnCommand="lbtn_Command" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "KeyIDColumn") %>' ></asp:LinkButton> </ItemTemplate> </asp:Repeater>
Затем в вашем коде за
protected void lbtn_Command(object sender, CommandEventArgs e) { int id = Convert.ToInt32(e.CommandArgument); }
Используйте Кнопки LinkButtons. Таким образом, вы можете обрабатывать событие OnClick в коде позади.
Сначала нужно установить onclick кнопки linkbutton в разметке. Затем вы захотите реализовать событие ItemDataBound для ретранслятора.
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { SomeObject obj = e.Item.DataItem as SomeObject; // w/e type of item you are bound to var linkButton = e.Item.FindControl("linkButtonId") as LinkButton; if(linkButton != null) { //either set a custom attribute or maybe append it on to the linkButton's ID linkButton.Attributes["someUniqueId"] = obj.SomeID; } }
Затем в событии click
void lb_Click(object sender, EventArgs e) { LinkButton lb = sender as LinkButton; if (lb != null) { // obviously do some checking to ensure the attribute isn't null // and make it the correct datatype. DoSomething(lb.Attributes["someUniqueId"]); } }