c# - 从代码隐藏到 javascript 获取 ASP 页面中的文件路径

标签 c# javascript asp.net telerik

我在 ASP 页面中有一个 radgrid 和一个 javascript。 这是脚本:

<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
    function ViewCheck(filename) {
        var targetfile = "Allegati/"+ filename;
        var openWnd = radopen(targetfile, "RadWindowDetails");
    }
</script>

上面的脚本应该将文件的路径传递到 Radwindow 并且工作正常。 我的问题是,由于各种原因,我现在需要创建“Allegati”的子文件夹来单独存储每个记录的文件。此类子文件夹以 recordID 值命名。 所以现在 var“targetfile” 应该是:

var targetfile = "Allegati/"+ recordID + filename;

在后面的代码中,我得到的 recordID 如下:

 protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
  if (e.Item is GridEditableItem && e.Item.IsInEditMode)
    {
        GridEditableItem editedItem = e.Item as GridEditableItem;
        string recordID = editedItem.GetDataKeyValue("TransazioneID").ToString();
    }
  }

如何将子文件夹值“recordID”传递给asp页面中的javascript以获取包含文件的文件夹的完整路径?

最佳答案

请尝试使用以下代码片段。如果有任何疑问,请告诉我。

JS

<script type="text/javascript">
        function OPenPopuP(id, name, serverPath) {
            var targetfile = serverPath + "/Allegati/" + id + "/" + name;
            var openWnd = radopen(targetfile, "RadWindowDetails");
            return false;
        }
</script>

ASPX

<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadWindowManager ID="RadWindowManager1" runat="server">
</telerik:RadWindowManager>
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource"
    OnItemDataBound="RadGrid1_ItemDataBound">
    <MasterTableView CommandItemDisplay="Top" DataKeyNames="ID,FileName">
        <Columns>
            <telerik:GridBoundColumn DataField="ID" UniqueName="ID" HeaderText="ID">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="Name">
            </telerik:GridBoundColumn>
            <telerik:GridTemplateColumn>
                <ItemTemplate>
                    <asp:Button ID="Button1" runat="server" />
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:Button ID="Button1" runat="server" />
                </EditItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridEditCommandColumn>
            </telerik:GridEditCommandColumn>
        </Columns>
    </MasterTableView>
</telerik:RadGrid>

ASPX.CS

protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    dynamic data1 = new[] {
           new { ID = 1, Name ="Name_1",FileName = "jayesh-Softweb.jpg"},
           new { ID = 2, Name = "Name_2",FileName = "jayesh-Softweb.jpg"},
           new { ID = 3, Name = "Name_3",FileName = "jayesh-Softweb.jpg"},
           new { ID = 4, Name = "Name_4",FileName = "jayesh-Softweb.jpg"},
           new { ID = 5, Name = "Name_5",FileName = "jayesh-Softweb.jpg"}
       };

    RadGrid1.DataSource = data1;
}

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridDataItem)
    {
        GridDataItem item = e.Item as GridDataItem;
        string strID = item.GetDataKeyValue("ID").ToString();
        string strFileName = item.GetDataKeyValue("FileName").ToString();
        Button Button1 = item.FindControl("Button1") as Button;
        Button1.Attributes.Add("onclick", "return OPenPopuP('" + strID + "','" + strFileName + "','" + Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath + "');");
    }
    else if (e.Item.IsInEditMode && e.Item is GridEditableItem)
    {
        GridEditableItem item = e.Item as GridEditableItem;
        string strID = item.GetDataKeyValue("ID").ToString();
        string strFileName = item.GetDataKeyValue("FileName").ToString();
        Button Button1 = item.FindControl("Button1") as Button;
        Button1.Attributes.Add("onclick", "return OPenPopuP('" + strID + "','" + strFileName + "','" + Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath + "');");

    }
}

关于c# - 从代码隐藏到 javascript 获取 ASP 页面中的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18714032/

相关文章:

c# - 使用 SignalR 将通知从 Web 应用程序推送到桌面 Windows 窗体应用程序的可行性

没有发布 ASP.NET WebForms 表单 - 为什么?

c# - 如果调用 Response.Close(),文件下载将被截断

javascript - 如何使用 javascript 将带有 base64 src 的图像保存到 Google 驱动器?

javascript - 是否可以单独使用 CSS 在下拉菜单中实现垂直滚动条?

asp.net - 如何将IIS Developer Express切换到 "Classic Mode"

c# - 如何在 Entity Framework 5.0 生成的所有实体中添加 Serializable 属性

c# - NSubstitute - TestFixture 1 在 TestFixture 2 中导致 AmbiguousArgumentsException

c# - Windows 窗体 - ErrorProvider + DataGridView

javascript - 在javascript中为对象创建函数