Liberty Crown Infotech Ответов: 1

Как отобразить результат поиска сохраненных в базе данных изображений без расширения файла


У меня есть окно поиска автозаполнения, которое отбирало миниатюры изображений, хранящихся в базе данных. Проблема в том, что расширение.jpg появляется каждый раз, когда имя изображения появляется в поле поиска автозаполнения. Есть ли в любом случае я могу изменить эти коды, чтобы предотвратить появление расширения .jpg? Ниже приведен мой существующий код с использованием javascript и ashx. Заранее благодарю вас!

Что я уже пробовал:

the aspx:

<script src="scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="scripts/jquery.autocomplete.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#<%=txtSearch.ClientID%>").autocomplete("Search.ashx", {
            width: 200,
            formatItem: function (data, i, n, value) {
                return "<img style = 'width:50px;height:50px' src= 'Images/" + value.split(",")[1] + "'/> " + value.split(",")[0];
            },
            formatResult: function (data, value) {
                return value.split(",")[0];
            }
        });
    });
</script>

<style type="text/css">
.Gridview
{
font-family:Verdana;
font-size:10pt;
font-weight:normal;
color:black;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
    Search here: 
    <asp:TextBox ID="txtSearch" runat="server" />
    <br />
</div>

<div>
<asp:FileUpload ID="fileuploadimages" runat="server" />
<br />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" />
</div>
<div>
</div>
    <asp:Label ID="lblResult" runat="server"></asp:Label>
</form>
</body>
</html>


the ashx:

public class Search : IHttpHandler {
public void ProcessRequest (HttpContext context)
{
string searchText = context.Request.QueryString["q"];
string strcon = ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString;
SqlConnection connection = new SqlConnection(strcon);
connection.Open();
SqlCommand cmd = new SqlCommand("select ID,ImageName,ImagePath from ImagesPath where ImageName Like @Search + '%'", connection);
cmd.Parameters.AddWithValue("@Search",searchText);
StringBuilder sb = new StringBuilder();
using(SqlDataReader dr=cmd.ExecuteReader())
{
while(dr.Read())
{
sb.Append(string.Format("{0},{1}{2}",dr["ImageName"],dr["ImageName"],Environment.NewLine));
}
}
connection.Close();
context.Response.Write(sb.ToString());
}
public bool IsReusable
{
get
{
return false;
}
}
}

1 Ответов

Рейтинг:
1

F-ES Sitecore

Вы можете получить только имя файла следующим образом

System.IO.Path.GetFileNameWithoutExtension(dr["ImageName"]);


Таким образом, какой бы из ваших экземпляров dr["ImageName"] ни представлял собой то, что рассматривается как изменение метки в приведенном выше коде.