我有一个用于视频上传和播放的网络应用程序。管理员可以上传,用户可以查看上传的文件。我自动填充从数据库到转发器的链接。我的目标是管理员可以删除上传的文件。文件也从数据库中删除。我正在使用SQl experess和VS2005。我该怎么做?
答案 0 :(得分:7)
放置一个按钮或任何其他您喜欢的控件,并为此按钮设置命令名称属性等于“删除”,例如,将任何id放入命令参数属性以知道要删除哪一行,并在转发器中使用ItemCommand事件检查此命令名称然后执行删除功能。
示例:
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" CommandName="Delete" OnClientClick="javascript:if(!confirm('Delete this information? this will delete permanently'))return false;" CommandArgument='<%#Eval("EntityID") %>' runat="server">Delete</asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "Delete" && e.CommandArgument.ToString() != "")
{
// DoDelete then rebind
}
}
删除代码将是这样的:
Dim connectionString As String = ConfigurationManager.ConnectionStrings("UploadConnectionString").ConnectionString
Dim adapter As New SqlDataAdapter("DELETE FROM FileM where id=" & e.CommandArgument.ToString(), connectionString)
答案 1 :(得分:0)
如果您想使用自定义确认(如jquery对话框,bootboxjs等),那么您必须生成按钮的“回发字符串”或以某种方式获取它。 asp.net在呈现页面后给出诸如回发名称;的 __ doPostBack( 'ctl00 $ $ ContentPlaceHolder1 btnDeleteSelected', '')即可。在意识到这一点之后我写了一个js函数,它生成了button的postback str;
function PostBackBtnMake(id) { // id : ContentPlaceHolder1_btnDeleteSelected
var result;
var temp = id.split('_');
result = 'ctl00$' + temp[0] + '$' + temp[1];
return result;
}
然后我可以在自定义确认框中使用(在本例中我使用了bootboxjs);
function PostBackBtn(e) {
var _result = false;
bootbox.confirm("Are you sure?", function (result) {
if (result) {
__doPostBack(PostBackBtnMake(e.id), '')
}
});
return _result;
}
它对我有用,我希望它对你也有帮助。